2013-10-22 165 views
0

我尝试重用线程和UdpClient用于发送和接收相同的端口上,但是当我调用该方法上..重用线程和UdpClient发送和接收同一端口

private void RecivedCallback(IAsyncResult ar) 
{ 
    try 
    { 
     if (ar == cuurentsynResult) 
     { 
      UdpClient c = (UdpClient)((UdpState)(ar.AsyncState)).c; 
      IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e; 
      Byte[] buffer = c.EndReceive(ar, ref e); 
      if (buffer.Length > 0) 
       System.Console.WriteLine(System.Text.Encoding.UTF8.GetString(buffer)); 
      UdpState s = new UdpState(e, c); 
      cuurentsynResult = udpclient.BeginReceive(new AsyncCallback(RecivedCallback), s);      
     } 
    } 
    catch (Exception ex) 
    { 
     string str = ex.Message; 
    } 
} 

我已经面对异常是的.. 一个现有的连接被强行远程主机 关闭,这样我怎么能解决这个problem.please发送您的意见或回答

鲜于兰詹

+0

UDP不是基于连接的。如何关闭连接?错误可能发生在其他地方。请发布完整的例外,包括堆栈跟踪并标记它所在的行。去除catch块。 – usr

回答

1

在一个UDP套接字,该错误可能意味着您收到了端口不可达ICMP消息以响应您发送的数据报。

如何从中恢复将是特定于应用程序的。

相关问题