クライアントは、サーバーへのいくつかの 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);
}
最初の接続は成功です。しかし、サーバーの応答がないため、2 番目の接続は失敗します (実際にはサーバーは tcp 接続をリッスンしています)。
ただし、Thread.Sleep(1500)
各 tcp.Connect() の後に追加すると、すべての接続が成功します。ただし、この状況は、1 つのクライアントと 1 つのサーバーがある場合にのみ当てはまります。多くのクライアントがある場合、サーバーが受け入れることができる各接続をどのように確認できますか? また、Thread.Sleep を追加すると、このような接続を成功させることができるのはなぜですか?