gpt4 book ai didi

c# - TcpClient 自动重新连接

转载 作者:太空狗 更新时间:2023-10-29 21:59:21 33 4
gpt4 key购买 nike

让 Tcpclient 自动重新连接到服务器的最佳方法是什么它已断开连接(例如,由服务器本身断开)?

我目前使用的代码是:

public void ClientWork()
{
TcpClient client = new TcpClient();

try
{
try
{
client.Connect(ip, port);
}
catch(Exception ex)
{
logger.ErrorFormat("client.Connect: {0}", ex.Message);
return false;
}

NetworkStream ns = client.GetStream();
byte[] buff;

while (__bRunning)
{
buff = new byte[1000];
ns.Read(buff, 0, 1000);

string line = System.Text.Encoding.Default.GetString(buff);
}

//ns.Close();
client.Close();
}
catch(Exception e)
{
//Reconnect?
client.Close();
client = null;

return false;
}
}

我正在使用 C# .NET

最佳答案

没有事件可用于获取断开连接的通知。

可能有 2 种可能的解决方案。

  1. 投票。您有单独的线程尝试在不同的线程中不断地轮询套接字。引用Instantly detect client disconnection from server socket

  2. 如果您对套接字或使用套接字的接口(interface)有低级控制,您可以对读写方法执行 try..catch 或对读写方法的包装器执行 try..catch任何异常你可以重新连接并尝试读写。

关于c# - TcpClient 自动重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187574/

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