サーバに接続するためのタイムアウトパラメータを実装しようとしていますが、私は運があまりありません。ここに私のコードは次のとおりです。timeoutInMSが1022より大きい場合1022ミリ秒間このタスクを待つのはなぜうまくいくのですか?1023はAggregateExceptionを引き起こします。
client = new TcpClient();
Task task = Task.Factory.FromAsync(client.BeginConnect, client.EndConnect, host, port, null);
bool taskCompleted = connectTask.Wait(timeoutInMS);
if (taskCompleted)
{
// Do something with the establishment of a successful connection
}
else
{
Console.WriteLine("Timeout!");
}
は残念ながら、AggregateExceptionは、この行にスローされます。
bool taskCompleted = connectTask.Wait(timeoutInMS);
がれるtcpClientのタイムアウトプロパティは、任意の違いを作るようには見えなかったの調整します。
集約の「InnerExceptions」とは何ですか? –
@FrédéricHamidi: ''ターゲットマシンが積極的にそれを拒否したため、接続できませんでした127.0.0.1:8080 "' –
タイムアウトが1023秒未満の場合、またはすべての場合に常に拒否された場合、接続は成功しますか? –