الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

My Network Connection Needs To Be Repaired Every Minute

بدأه أبو هاشم المصري في 4 يناير 2010 · 8 رد · 1,095 مشاهدة · في منتدى الشبكات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

عندي مشكلة كبيرة جداً في الإتصال بالشبكة وهي ان الإتصال يصاب بعطل كل فترة زمنية ممكن تكون دقيقة أو دقيقتين أو اكتر أو أقل وخلال هذا العطل يتوقف التحميل ولا يعود لطبيعته الا بعد عمل repaire ويتم ذلك بدون مشاكل ولكن اجلس اراقب الإتصال كلما أردت فتح موقع او اكمال تحميل حتي نهايته أقوم بعمل repaire بشكل دائم

post-63357-12626168596877_thumb.jpg

post-63357-1262616879041_thumb.jpg

هذه المشكلة عندي علي xp فقط أما سفن فالنت تمام ولكني مضطر للعمل علي xp الآن

ولا تحميل من الرابيد شير نافع لأنه لا يقبل الاستكمال والنت بيقطع كل قترة

هل من حل هل من حل؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Electrical communications and electronics engineer

C++ Developer

 


stackoverflow profile : http://stackoverflow.com/users/249120/ahmed-safan


 


Just Keep Moving On , never stop until you are dead


#2

هل هي على كل اجهزة ال XP المشكلة

ام ان اجهزة دون الاخر ؟؟

#3

شكراً علي الرد

جهاز واحد فقط ممكن يكون بسبب الأكسس بوينت؟؟؟؟؟؟؟؟

Electrical communications and electronics engineer

C++ Developer

 


stackoverflow profile : http://stackoverflow.com/users/249120/ahmed-safan


 


Just Keep Moving On , never stop until you are dead


#4

اها

افهم من كلامك اذا الكرت وير ليس

كل الاحتمالات موجودة

كم يبعد الجهاز عن مكان التغذية الاسلكي ؟

لربما هناك انواع اكسس بوينت تاخذ اوامر خمول لوحدها بعد فترى

توضيح اكثر لو سمحت

#5

الكرت NIC عادي Ethernet ولكنه واصل بأكسس بوينت والمسافة بين الأكسس دي والأكسس اللي واصله بالسيرفر ليست كبيرة تقريباً 500 متر في حين انه فيه ناس تانية علي بعد 1000 متر وما في مشكلة عندهم

ولكن هل أمر الخمول يأتي أثناء التحميل ؟! أثناء نشاط الإتصال ؟! والمهم أنه عند عمل repair تصير الأمور تمام فأنا كتبت كود بسيط يعمل بينج كل شوية ولو مافيش رد يشغل صوت منبه علشان أعمل repair لأن البينج العادي يعمل في صمت أنا بالمختصر أحرس النت للكمبيوتر حتي لا يهرب منه :blink: :blink: :blink:

Electrical communications and electronics engineer

C++ Developer

 


stackoverflow profile : http://stackoverflow.com/users/249120/ahmed-safan


 


Just Keep Moving On , never stop until you are dead


#6

ايه يا اخواني الأفاضل مفيش حل ولا ايه

ممكن يكون فيروس ؟؟ بحثتلا ووجدت أته يوجد فيروسات لقطع الإتصال كل خمس دقائق ماتقولن في هذا

Electrical communications and electronics engineer

C++ Developer

 


stackoverflow profile : http://stackoverflow.com/users/249120/ahmed-safan


 


Just Keep Moving On , never stop until you are dead


#7

كل ده ومفيش رد أنا عارف كلنا مشغولين في امتحانات الترم الأول بس أنا لقيت حل امشي بيه نفسي لحد أما أغادر الإكس بي بلا عوده بإذن الله بحثت فوجدت في الرباط http://stackoverflow.com/questions/382998/repair-network-connections-programatically-from-command-line مجموعة أوامر تكتبها تعمل repair أوتوماتك وهي كالآتي

route -f
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns

ولما جربتهم وجدت انه كأنهم بيفصلو الإتصال ويبدأوه من تاني يعني نشط الإتصال بس لو بنعمل دونلود لايدعم الإستكمال يضيع كل اللي عملناه لأنه بيفصل فعلا وده اللي حصل وبالتجريب حذفت الثلاثة الأول وجربت وجدت ان الاتصال يتم تنشيطه وبالمره لا ينقطع الإتصال كأنك عملت repair بالضبط وانا كنت كاتب كود يعمل بينج ويرن لو فيه خطأ بدأت بعد الرنه استدعي الدالة اللي تنشط الإتصال ويتم هذا بشكل دوري والحمد لله

    //دي هي الدالة اللي هتفضل تشيك علي الاتصال ونستخدمها في thread منفصلة حتي لا تتجمد النافذة للتكرار المستمر
    private: System::Void repairemanager()
             {
                 while(true)
                 {
                     changetext(L"Checking");
                     Thread::Sleep(1500);
                     Repaire();
                     Thread::Sleep(2000);
                 }
             }
    //لو فيه استجابة من عمل بينج لمرة واحده تمام والا نكرر 3 مرات لو لا يوجد استجابة نستدعي DoRefresh()
    private: System::Void Repaire()
             {
                 ProcessStartInfo^ psi=gcnew ProcessStartInfo(L"ping",L"-n 1 40.0.0.2");
                 psi->CreateNoWindow=true;
                 psi->WindowStyle=ProcessWindowStyle::Hidden;
                 Process^ p=gcnew Process();
                 for(int i=0;i<3;i++)
                 {
                     changetext(L"Pinging.....");
                     p->StartInfo=psi;
                     p->Start();
                     //p->Start(psi);
                     p->WaitForExit();
                     int ret=p->ExitCode;
                     if(ret==0)
                     {
                         changetext(L"good connection");
                         Thread::Sleep(1500);
                         return;
                     }
                     else
                         break;
                 }
                 Media::SystemSounds::Beep->Play();
                 changetext(L"Refreshing");
                 DoRefresh();
             }
    //دالة لتنفيذ الأوامر
    //to repair connection
    private: System::Void DoRefresh()
             {
                 Process^ p;
                 ProcessStartInfo^psi=gcnew ProcessStartInfo();
                 psi->CreateNoWindow=true;
                 psi->WindowStyle=ProcessWindowStyle::Hidden;
                 array<String^>^ files={L"arp",L"nbtstat",L"nbtstat",L"ipconfig",L"ipconfig"};
                 array<String^>^ args={L"-d *",L"-R",L"-RR",L"/flushdns",L"/registerdns"};
                 for(int i=0;i<5;i++)
                 {
                     psi->FileName=files;
                     psi->Arguments=args;
                     changetext(String::Concat(files," ",args));
                     p=Process::Start(psi);
                     p->WaitForExit();
                     if(p->ExitCode==1)
                     {
                         MessageBox::Show(String::Format(L"error at {0}",args));
                         changetext(L"Refresh Error");
                         Thread::Sleep(1500);
                         return;
                     }
                 }
                 changetext(L"Refreshed");
                 Thread::Sleep(1500);
             }
             delegate Void changetextdel(String^s);
    private:System::Void changetext(String^s)
                     {
                         if(this->InvokeRequired)
                         {
                             this->Invoke(gcnew changetextdel(this,&Form1::changetext),gcnew array<Object^>{s});
                         }
                         else
                             this->Text=s;
                     }

وشفت ناس كاتبين باتش في النوت باد ينفذ نفس الأوامر ولكني مابعرفش اتكلم ألماني

Electrical communications and electronics engineer

C++ Developer

 


stackoverflow profile : http://stackoverflow.com/users/249120/ahmed-safan


 


Just Keep Moving On , never stop until you are dead


#8

اسف اخي يبدو اني تاخرت لكن بالفعل كنت جدا مشغول في العمل ولم ادخل

على كل حال فهمت السيناريو الذي تتكلم عنه

الحل في علميةrepair التلقائي كل فترى لا تنفع ابدا فكانك تفقد الاتصال كل مرة

انا بالبداية ما كنت اريد ان اتهم الفايروس فهو مسكين في كل مرة نضلمه احيانا

لكن حسب ما يحدث احيانا معي وطلب علية repair ياتي متزامن مع عملية فقد الصوت على الجهاز نفسه

genaric host هذا فايروس يسبب ااحيانا رجفة للتظام يقلبه لثواني لكلاسيك ثم يعود

واحيانا يفعل فعلته اما بكرت الشبكة لحالها او كرت الصوت والشبكة والى الان لم يعمل مشاكل معي غير بهذول التنين

تخمينات الى الان

لتتاكد من الموضوع واذا كان جهازك ليس عليه اي مشاركات او هوا سيرفر

فقط قم بتنزيل برنامج انتي فايروس البدي فندر واجعل جدار حمايته ينطلق

اتمنا انك تجرب ما قلته لك ...لان هذه المشاكل صدقا لايوجد لها حل فوري

ما لغة البرمجة التي كتبت بها برنامج الping

تم تعديل هذه المشاركة بواسطة shado في 13 يناير 2010 في 03:46

#9

والله حتي الآن لا أعرف السبب ولكن الإحتمال الأكبر أن يكون فيروس ولكني الحمد لله تغلبت علي المشكلة بالبرنامج البسيط اللي كوده فوق ده وهو مكتوب بلغة C++.NET

وأهم حاجة اني ازلت منه الخطوات التي تقطع الإتصال وتعيده وهو يعمل اصلاح فقط وشغال من بداية التشغيل الي الاغلاق

Electrical communications and electronics engineer

C++ Developer

 


stackoverflow profile : http://stackoverflow.com/users/249120/ahmed-safan


 


Just Keep Moving On , never stop until you are dead


مواضيع مشابهة