Когда я пытался восстановить соединение с моим сокетом, я получаю следующую ошибку:
Ошибка : обычно допускается только одно использование каждого адреса сокета (протокол / сетевой адрес / порт)
SocketErrorCode : System.Net.Sockets.SocketError.AddressAlreadyInUse
Каждый раз, когда я хочу восстановить соединение, я сначала вызываю метод Disconnect (). Но даже если мой сокет отключен, у меня возникает ошибка при попытке восстановить соединение с помощью метода Connect ().
public SocketError Connect()
{
//Open socket connection
SocketAsyncEventArgs connectArgs = new SocketAsyncEventArgs();
connectArgs.UserToken = _socket;
connectArgs.RemoteEndPoint = _hostEndPoint;
connectArgs.Completed += OnConnect;
_socket.ConnectAsync(connectArgs); //ERROR : Only one usage of each socket address...
_autoConnectEvent.WaitOne();
if (connectArgs.SocketError != SocketError.Success)
{
throw new SocketException((Int32)connectArgs.SocketError);
}
return connectArgs.SocketError;
}
public void Disconnect()
{
_socket.Shutdown(SocketShutdown.Both);
_socket.Disconnect(true);
}
Кто-нибудь знает, как избежать этой ошибки?