Saya menjalankan tautan beyondtv di xp, menghubungkan ke beyondtv host vista. Program Link hang setelah sekitar 20 menit, dan saya tidak memperbaikinya. Ketika ini terjadi, menggunakan tcpview, saya melihat bahwa tuan rumah memiliki sekitar 200 koneksi tcp zombie yang tersisa dari koneksi Link. Saya tidak dapat menghapusnya, mereka berasal dari proses yang sama tidak ada. Koneksi berkeliaran sampai saya me-reboot host. Mem-boot ulang adalah satu-satunya cara yang saya temukan untuk menyambungkan kembali tautan luar. Saya pikir ada bug di beyondtv yang menyebabkan ini, tapi saya tidak bisa mendapatkan jawaban di forum mereka. Tapi bagaimanapun juga, saya ingin tahu apakah ada cara untuk membunuh semua koneksi itu.
Sunting: sebenarnya sekitar 3000 WAIT_CLOSE koneksi terakumulasi setelah sekitar 40 menit, dan sekitar saat itu klien mati. Jika saya menutup aplikasi server, semua soket ini sekarang ditampilkan sebagai dimiliki oleh proses -tidak ada- di tcpview. Bisa dimengerti Tapi tidak adakah cara untuk menutupnya tanpa boot ulang?
sumber
Jawaban:
Anda dapat menggunakan Currports Nirsoft untuk memantau dan mematikan koneksi.
Anda dapat secara otomatis mematikan pola koneksi menggunakan AutoHotKey.
sumber
CLOSE_WAIT berarti koneksi ditutup di ujung lainnya.
Jelas, beyondtv tidak mendeteksi kondisi ini dan terus mengirim data ke aplikasi di ujung lainnya. Ujung yang lain tidak dapat mengirim apa pun kembali melalui koneksi ini, karena telah menutup ujung koneksi.
Solusinya adalah dengan mengatur entri TcpTimedWaitDelay di
Secara default pada mesin saya, ini berisi nilai -1, yang saya maksudkan bahwa koneksi tertutup tidak pernah dirilis, yang persis perilaku yang Anda amati.
Saya sarankan Anda mengatur nilai entri ini dalam rentang yang diizinkan 30-300 detik. Saya kira 300 detik = 5 menit sepenuhnya cukup untuk kasus Anda, di mana dibutuhkan 40 menit untuk membekukan komputer Anda.
sumber
TIME_WAIT
membawa saya ke sini. Terima kasih atas penjelasan dan tautannya.Anda mungkin dapat memaksa Windows untuk menutup paksa semua koneksi TCP dengan 1) menonaktifkan , kemudian 2) mengaktifkan kembali antarmuka jaringan Anda. Jika itu berhasil, Anda bisa mengelompokkan langkah-langkah untuk dieksekusi saat diperlukan.
Saya telah mencari-cari cara untuk melakukan ini melalui commandline, dari
netsh
utilitas (atau yang serupa), tapi sejauh ini saya belum beruntung.Tentu saja, cara terbaik untuk memperbaikinya adalah memperbaiki aplikasi yang rusak. Pastikan Anda mencoba versi terbaru aplikasi; terus mengganggu pengembang; jika Anda sudah berada di versi terbaru, coba cari versi program yang lebih lama.
sumber
Anda mungkin mendapatkan sesi CLOSE_WAIT ini karena program hang - saya tidak tahu apakah Anda mencurigainya sebagai penyebabnya, jadi hanya ingin menjelaskannya.
Dugaan saya adalah bahwa mereka tidak akan bertahan selamanya; mungkin hanya selama 2 jam dan 5 detik. Bisa seperti selamanya, saya tahu. Anda dapat mencoba menyetel KeepAliveTime (mungkin memerlukan satu reboot akhir) untuk koneksi jaringan Anda ke sesuatu yang kecil, seperti 5 menit. Itu mungkin membantu mereka menghilang lebih cepat, setelah program Anda hang.
Atau jika Anda tahu Anda dapat menjalankan program dengan andal untuk, katakanlah, 10 menit setiap kali, Anda bisa memulai kembali secara berkala. Tidak tahu apakah ada solusi yang berguna untuk situasi khusus Anda; Saya setuju dengan ~ dukun bahwa Anda harus membuang versi aplikasi yang bermasalah sesegera mungkin.
sumber
Lihat apakah beyondtv memunculkan proses lain yang menahan koneksi terbuka. Process Explorer akan menunjukkan kepada Anda jika ini terjadi.
sumber
Apakah mungkin ada masalah firewall? Ini mungkin koneksi yang tidak lengkap yang dicoba dan coba lagi.
Saya akan menonaktifkan semua firewall di kedua mesin, dan jika ada router juga firewall internal.
sumber
Coba perbaikan WinSock XP.
http://www.snapfiles.com/get/winsockxpfix.html
Ini merusak koneksi Anda dan mengatur ulang kembali ke default. Saya selalu menyimpan ini di thumb drive ketika semuanya gagal.
sumber