一个客户端需要同时建立几个到服务器的 tcp 连接。我的服务器代码如下。
while (_running)
{
if (!_listener.Pending())
{
Thread.Sleep(100);
continue;
}
TcpClient client = _listener.AcceptTcpClient();
}
我的客户的代码如下。
for (int i = 0; i < num; i++)
{
TcpClient tcp = new TcpClient();
tcp.Connect(_server);
}
第一次连接成功。但是由于服务器没有响应(实际上服务器正在侦听 tcp 连接),第二次连接失败。
但是,如果我Thread.Sleep(1500)
在每个 tcp.Connect() 之后添加,所有连接都是成功的。但是这种情况只有在有一个客户端和一个服务器的情况下才成立。如果有很多客户端,那么如何确保服务器可以接受每个连接?还有为什么我添加 Thread.Sleep 可以使这样的连接成功?