1
我在使用C#.NET3.5中的套接字的應用程序中出現錯誤10022。C#套接字錯誤10022
在我的代碼中,我將套接字綁定到本地IP地址。 當我不再需要它,我只是斷開它(reader.socket.Disconnect(true);)與「真正」,以便能夠重新使用它
但是,當我調用「綁定」方法再次,它崩潰與10022錯誤(無效的參數)
如果我將此方法設置爲註釋行,它然後崩潰在線「聽」,說已建立連接(雖然我稱爲斷開連接!)
任何想法?
感謝
這裏是一個失敗的代碼部分:
public void WaitConnexion(IPEndPoint localEP)
{
if (localEP.Port != 9000)
{
MessageBox.Show("Le port doit être 9000");
return;
}
LocalEndPoint = localEP;
if (reader.socket.Connected)
{
MessageBox.Show("Vous êtes déjà connecté", "Conflit de connexion", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
// on bind le socket avec le endpoint local, et on le met en attente de connexion asynchrone
// reader.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
reader.socket.Bind(localEP);
reader.socket.Listen(1);
reader.socket.BeginAccept(new AsyncCallback(WaitConnexionCallBack), reader.socket);
}
這裏是diconnect方法,其回調:
public void Disconnect()
{
if (!reader.socket.Connected)
return;
reader.socket.BeginDisconnect(true, new AsyncCallback(DisconnectCallBack), reader.socket);
}
private void DisconnectCallBack(IAsyncResult result)
{
reader.socket = (result.AsyncState as Socket);
reader.socket.EndDisconnect(result);
if (Disconnected != null)
Disconnected(this, EventArgs.Empty);
}