مراقبة في الوقت الحقيقي لدولة الشبكة. ما الأحداث التي نشأت؟

StackOverflow https://stackoverflow.com/questions/1159185

سؤال

لدي تطبيق WinForm يجب أن يكون يدرك عندما يتوفر خادم SQL من أجل السماح بوظائف مزامنة الدمج. لقد جربت اختلافات أدناه، والتي تعمل على أساس وقت واحد، ولكن أود أن أتناول شيء أكثر ديناميكية قليلا.

أدناه function (شكرا لك alex_l.) يتم التحقق من منفذ 1433 الذي يعمل SQL ويعمل بشكل رائع. ما أحاول إنجازه هو وسيلة لرصد هذا في الوقت الفعلي. هل يجب علي إنشاء خدمة Windows؟ ماذا عن أي أحداث شبكة أخرى مثل تغيير اتصال الشبكة؟

استخدام هذا التطبيق المتصل في بعض الأحيان بسيط. إذا كانوا على شبكتنا، فإن جزء النسخ المتماثل دمج متاح. إذا لم تكن على شبكتنا، فليس كذلك. يجب ألا يكون خادم SQL متاحا من شبكتنا أبدا، ويجب أن يكون متاحا دائما عند تشغيله.

ومع ذلك، سأكون مفتوحا للحلول المتعلقة بالكشف عن شبكتنا الحالية بدلا من مثيل SQL.

     private static bool IsSqlAvailable()
        {
            TcpClient tcpc = new TcpClient();
             try
               {
                 tcpc.Connect("10.250.50.30", 1433);
                 return true;
               }
             catch
               {
                 return false;
               }
        }
هل كانت مفيدة؟

المحلول

يمكنك التحقق من المنفذ 1433 من SQL Server (أو آخر، إذا تم استخدامه):

TcpClient tcpc = new TcpClient();
try
{
    tcpc.Connect("10.250.50.30", 1433);
    return true;
}
catch
{
    return false;
}

نصائح أخرى

لدي إدخال على مدونتي تظهر كيفية اكتشاف تغييرات توافر الشبكة. وبعد يستخدم notifyaddrchange. Windows API لرفع حدث مدار كلما كان هناك تغيير في جدول رسم خريطة واجهة IP. نظرا لأن هذه التغييرات مرتبطة بتغيرات توافر الشبكة (قابس الكابل، وانضمام واي فاي، اتصال VPN، الطلب الهاتفي الطلب الهاتفي، الاتصال الهاتفي 3G إلخ) يمكنك استخدام الحدث لاختبار توافر الخادم وبدء المزامنة الخاصة بك.

من المحتمل أن أذهب مع الطريقة الثانية، مما يؤدي في التحقق من خصائص قاعدة البيانات المختلفة للتأكد من أنه آمن للكتابة إليه.

http://msdn.microsoft.com/en-us/library/ms176049.aspx.

طيب خطة B ردا على التعليق أدناه: هل أرسل خادم SQL الخاص بك نوعا من "نبضات القلب" إلى التطبيق الرئيسي الخاص بك (Ping أو One؛ UP لك). يمكنك الحصول على تطبيقك تشغيل مؤشر ترابط منفصل لمشاهدة هذا نبضات القلب كل ثانية. إذا توقفت عن تلقي هذا نبضات القلب، فأنت غير متصل بخادمك لتشغيل الدمج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top