错误上的SocketAsyncEventArgs重新连接:

错误:每个套接字地址的一个使用每个套接字地址通常允许

问题描述:

当我试图重新建立我的插座连接我碰到下面的错误之一使用(协议/网络地址/端口)通常允许 SocketErrorCode:System.Net.Sockets.SocketError.AddressAlreadyInUse错误上的SocketAsyncEventArgs重新连接:</p> <p><strong>错误</strong>:每个套接字地址的一个使用每个套接字地址通常允许

每次我要重新连接,我首先调用断开()方法。但是,即使我的套接字断开连接,当我尝试使用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); 
    } 

有谁知道如何避免这个错误?

+0

你测试使用相同的插座数量在同一台机器上连接的两端?这在过去让我感到困扰。 –

+0

是的,同一台机器,相同的套接字号。我应该对ReuseAddress Property做些什么吗? –

+0

你是否为每一端尝试了不同的套接字号码? – Flanfl