这是我用来设置 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,你会得到一个异常,因为端口已经在使用中,所以当我调用该函数两次时,我会得到那个异常。
问题 - 在 Catch{} 语句之后,即使我捕获了异常,代码仍继续遵循 finally{},为什么会发生这种情况?我希望它在消息框之后退出函数。我尝试使用“return”,但它仍然继续跟随 finally{} 块。