Saya bekerja dengan aplikasi komersial yang melempar SocketException dengan pesan,
Koneksi yang ada ditutup secara paksa oleh host jarak jauh
Ini terjadi dengan koneksi soket antara klien dan server. Sambungannya hidup dan baik, dan banyak data yang ditransfer, tetapi kemudian terputus entah dari mana.
Adakah yang pernah melihat ini sebelumnya? Apa penyebabnya? Saya bisa menebak beberapa penyebab, tetapi juga adakah cara untuk menambahkan lebih banyak ke dalam kode ini untuk mengetahui apa penyebabnya?
Setiap komentar / ide dipersilakan.
... Terbaru ...
Saya memiliki beberapa pencatatan dari beberapa pelacakan .NET,
System.Net.Sockets Verbose: 0 : [8188] Socket#30180123::Send() DateTime=2010-04-07T20:49:48.6317500Z
System.Net.Sockets Error: 0 : [8188] Exception in the Socket#30180123::Send - An existing connection was forcibly closed by the remote host DateTime=2010-04-07T20:49:48.6317500Z
System.Net.Sockets Verbose: 0 : [8188] Exiting Socket#30180123::Send() -> 0#0
Berdasarkan bagian lain dari logging saya telah melihat fakta bahwa ia mengatakan '0 # 0' berarti paket panjang 0 byte sedang dikirim. Tapi, apa arti sebenarnya?
Salah satu dari dua kemungkinan terjadi, dan saya tidak yakin yang mana,
1) Koneksi sedang ditutup, tetapi data kemudian ditulis ke soket, sehingga menciptakan pengecualian di atas. 0 # 0 berarti tidak ada yang dikirim karena soket sudah ditutup.
2) Sambungan masih terbuka, dan paket nol byte sedang dikirim (yaitu kode memiliki bug) dan 0 # 0 berarti bahwa paket nol byte sedang mencoba dikirim.
Menurutmu apa? Mungkin tidak meyakinkan saya kira, tetapi mungkin orang lain telah melihat hal semacam ini?