正在等待网络连接
本文关键字:连接 网络 在等待 | 更新日期: 2023-09-27 17:59:59
我正在尝试创建一个程序,以便从网络上的另一台计算机发送和接收字符串。只有一对独特的计算机通过该程序连接在一起。除了第一个连接之外,大部分都完成了,并且工作得很完美。只有当两台计算机同时打开程序时,才能建立第一个连接。因为另一台计算机上的服务器将不会运行,因此连接将被拒绝。这是代码:
public MultiplayerState2(Game1 game)
{
this.game = game;
localIp = GetLocalIP();
server = new TcpListener(IPAddress.Parse(localIp), localPort);
server.Start();
networkingThread = new Thread(getData);
networkingThread.Start();
clientThread = new Thread(connectClient);
clientThread.Name = "Connect Client";
clientThread.Start();
}
void connectClient()
{
while (client == null)
{
try
{
client = new TcpClient(remoteIp, remotePort);
Console.WriteLine("Connected");
clientThread.Abort();
}
catch
{
Console.WriteLine("Waiting for partner");
}
}
}
这里,connectClient
应该等待来自计算机的连接。但我得到的唯一输出是waiting for partner
。这是等待连接的正确方式吗?如果是,为什么它不起作用?
TcpClient
构造函数尝试连接到在指定端口上侦听的服务器。但此过程超时1分钟。如果连接在1分钟内没有成功,它将被关闭并抛出异常;因此你得到了例外。
这是尝试连接到服务器的唯一方法。您唯一可以添加的是使线程休眠(Thread.Sleep(n)
)一段时间,比如10秒左右(取决于您的上下文)。