c#socket异步连接后怎样判断连接是否成功

 我来答
panxiang1017
推荐于2018-03-28 · 超过18用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:61.4万
展开全部
//这是例子,你参考参考
private  int connToServer(string hostip, int hostport,int ctimeout)       
 {            
IPEndPoint remoteEp = new IPEndPoint(IPAddress.Parse(hostip),hostport);            try            
{                
connDone.Reset();
                //开始连接                
cliSock.BeginConnect(remoteEp, new AsyncCallback(connCallBack), cliSock);                connDone.WaitOne(ctimeout, false);              
  if (!cliSock.Connected)                
{                    //连接超时                    
return CONNTIMEOUT;                }                
//连接成功               
 return 0;            }            
catch (SocketException ex)            
{                //连接失败                
cliSock.Close();                
return CONNTIMEOUT;           
 }           
 catch (Exception ex)       
     {                //连接失败            
    cliSock.Close();             
   return CONNTIMEOUT;         
   }      
  }       
 private  void connCallBack(IAsyncResult ar)       
 {            
Socket s = (Socket)ar.AsyncState;         
   try           
 {               
 s.EndConnect(ar);               
 isConnected = s.Connected;      
      }           
 catch (Exception ex)     
       {               
 isConnected = false;      
          //发生错误            
    return;          
  }           
 finally        
    {             
   connDone.Set();    
        }      
  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式