如果套接字没有被服务器断开/关闭,如何重新连接套接字到服务器
本文关键字:服务器 套接字 重新连接 关闭 断开 如果 | 更新日期: 2023-09-27 18:07:32
我有一个TCP异步项目,如果连接关闭,则在重新连接客户端到服务器时出现问题。(未被服务器关闭).
当服务器关闭时,客户端得到以下错误:
An existing connection was forcibly closed by the remote host at EndReceive(IAyncResult ar) at ReceiveCallback(IAsyncResult ar)
PS:客户端只能接收来自服务器的流。
话虽如此,我明白我需要以某种方式重新连接到服务器。我试图做一些事情,但它没有工作,因为客户端没有响应和退出。
我所做的是,在包含以下步骤的接收回调的catch块中,我将ClientSocket设置为Disconnected(true),并在while循环中(!ClientSocket. connected),我正在回忆再次启动异步操作的主方法,最后一行代码是Thread.Sleep(n);
这些事情在接收回调
中完成- 从缓冲区中获取字符串
- 做. .字符串
- 再次调用BeginReceive
PS:我不想使用其他端口
您必须捕获该异常(您可以查找特定的错误代码),然后关闭该套接字并消除它。然后从头创建一个新的