Мой TCPListener настроен так:
this.tcpListener = new TcpListener(IPAddress.Any, config.portNum);
Затем я (используя многопоточность) настраиваю функцию прослушивателя следующим образом:
private void ListenForClients()
{
this.tcpListener.Start();
while (true)
{
//blocks until a client has connected to the server
TcpClient client = this.tcpListener.AcceptTcpClient();
//create a thread to handle communication
//with connected client
ThreadStart starter = delegate { HandleClientComm(client, this.DBGrid); };
Thread thread = new Thread(starter);
thread.Start();
}
}
Первый раз, когда это работает, второй раз, когда я запускаю это, я получаю это сообщение об ошибке:
Обычно используется только одно использование каждого адреса сокета (протокол / сетевой адрес / порт)
разрешено
Внутри ветки есть звонок на закрытие:
tcpClient.Close();
Но, похоже, это не освобождает порт, какие-либо предложения?