これは、TCPサーバーをセットアップするために使用するコードです
internal void Initialize(int port,string IP)
{
IPEndPoint _Point = new IPEndPoint(IPAddress.Parse(IP), port);
Socket _Accpt = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
_Accpt.Bind(_Point);
}
catch (SocketException exc)
{
System.Windows.Forms.MessageBox.Show(exc.Message);
}
finally
{
_Accpt.Listen(2); //Second exception is here after the code continues after the catch block
_Accpt.BeginAccept(null, 0, new AsyncCallback(Accept), _Accpt);
}
}
同じ宛先で Bind を呼び出すと、ポートが既に使用されているため、例外が発生します。その関数を 2 回呼び出すと、その例外が発生します。
問題 - Catch{} ステートメントの後、コードは例外をキャッチしたにもかかわらず、Finally{} に続くのはなぜですか? メッセージボックスの後に関数を終了させたい.「return」で試しましたが、まだfinally{}ブロックに続きます。