2013-10-22 97 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消息以響應您發送的數據報。

如何從中恢復將是特定於應用程序的。

相關問題