【发布时间】:2016-12-15 15:41:34
【问题描述】:
下面是我的 TCP 服务器端代码。问题是当客户端计算机上的应用程序关闭时,服务器无法自动尝试每 2 秒重新连接一次,直到连接。我怎样才能做到这一点?
我的想法是在连接到客户端后,服务器创建一个状态线程以每 30 秒向该客户端发送一个字节,如果失败 ---> 终止连接并重试再次连接。我不确定它是否会起作用。
public static TcpClient client = new TcpClient();
public static int port = 6446;
public static string connectTo = "192.168.0.11";
public static NetworkStream dataStream;
static void Main(string[] args)
{
int retry = 0;
TryingConnect:
try
{
do
{
if (retry == 10)
{
retry = 0;
Console.Clear();
}
cout("Connecting...");
IPAddress ipAddress = IPAddress.Parse(connectTo);
client.Connect(ipAddress, port);
} while (client.Connected != true);
cout("Connected!");
dataStream = client.GetStream();
}
catch (Exception ex)
{
// Debug: MessageBox.Show(ex.ToString());
retry++;
Thread.Sleep(2000);
goto TryingConnect;
}
}
【问题讨论】:
-
相当肯定你不能......这就是为什么它被称为服务器