正确处理“;对等方重置连接”;在C#中
本文关键字:方重置 对等 正确处理 连接 | 更新日期: 2024-10-18 10:13:12
我在这里构建c#
示例https://github.com/coolaj86/fizzbuzz/blob/master/tcp-echo-csharp/Main.cs并针对CCD_ 2运行它。
当我用CTRL+C退出netcat
时,它会关闭套接字,我得到
Unhandled Exception: System.Net.Sockets.SocketException: Connection reset by peer
at System.Net.Sockets.Socket.EndReceive (IAsyncResult result) [0x00000] in <filename unknown>:0
at echo.AsynchronousSocketListener.ReadCallback (IAsyncResult ar) [0x00000] in <filename unknown>:0
在我使用过的其他语言中,FIN表示为0字节的读取(或称为"FIN"或"end"的事件等),但我修改了示例,打印出0字节读取的消息,但我看不到任何消息。
如何处理客户端关闭连接?
我正在寻找诸如"使用System.Net.Foo.Bar.CloseHandler()
或System.Net.Foo.Bar.ErrorHandler()
"之类的答案。
我不确定,但我认为没有办法优雅地做到这一点。因为如果连接正确关闭,就会收到客户端断开连接的通知。但是通过CTRL+C来中断程序执行并不是这种情况。所以,我建议你只需处理异常来解决这个问题。