gpt4 book ai didi

c# - 连接到服务器,保持连接,并在连接丢失时继续重试?

转载 作者:行者123 更新时间:2023-11-30 22:25:13 25 4
gpt4 key购买 nike

我希望我的客户端应用程序连接到我的服务器应用程序,并在连接丢失时不断尝试重新连接。

我目前正在尝试使用计时器每秒检查一次连接,方法是首先尝试使用 NetworkStream.Write 发送数据包,然后检查 TcpClient.Connected,但它似乎无法正常工作。客户端断开连接后,TcpClient.Connected 永远不会返回到 false。

最简单的方法是什么?

最佳答案

如果连接关闭,它应该抛出一个异常。您可以捕获它并重新打开连接。这是我在连接 TcpClient 时关闭 TcpListener 时遇到的异常。

System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host

编辑:这是您如何不断重新尝试连接的示例。请注意,根据您的情况,您可能需要一个计数器或计时器,这样它就不会永远重试。

public class PersistantTcpClient
{
TcpClient Client { get; set }

public void Start()
{
while (true)
{
try
{
this.Client.Connect("host", port)

// once it can connect, get back to work!
DoWork();
}
catch (SocketException)
{
// if it cannot connect, keep trying
}
}
}
}

关于c# - 连接到服务器,保持连接,并在连接丢失时继续重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434886/

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