gpt4 book ai didi

c# - 在C#中正确处理 "Connection reset by peer"

转载 作者:行者123 更新时间:2023-11-30 12:49:21 26 4
gpt4 key购买 nike

我在这里构建 c# 示例 https://github.com/coolaj86/fizzbuzz/blob/master/tcp-echo-csharp/Main.cs并针对 netcat 运行它。

当我使用 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 中断程序执行不是这种情况。所以我建议你只处理异常来解决这个问题。

关于c# - 在C#中正确处理 "Connection reset by peer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11834553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com