2

BeginConnect を使用してサーバーに接続しようとしていますが、間違った IpAddress または Port を指定すると、SocketException が発生します。

問題は、私の try/catch が例外をキャッチしないことです:

private void OnConnect(IAsyncResult result)
{
    try
    {
        socket.EndConnect(result);

        status = Status.WaitAck;

        socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, onDataReady, null);
    }
    catch (Exception ex)
    {
        if (ConnectionError != null)
            ConnectionError(this, new OpenWebNetErrorEventArgs(ex));
    }
}

socket.EndConnect メソッドを呼び出すと、VS は例外を報告し、プログラムをブロックします...

どうすれば対処できますか?

ありがとうフェデリコ

4

1 に答える 1

0

デバッガーでプログラムを実行していますか? その場合、例外がスローされたときに VS を中断するか、スローされた SocketException で中断する必要があります。

それを修正すると(その例外の「スロー」列のチェックを外す)、Catch ハンドラーを実行できるようになります。

于 2009-10-02T04:36:46.457 に答える