Это код, который я использую для настройки моего 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 {}.