重用线程和UdpClient在同一端口上发送和接收

时间:2013-10-22 11:45:39

标签: c#

我尝试重用线程和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;
    }
}

我面临的例外是...... 远程主机强制关闭现有连接 所以我如何解决这个问题。请发表您的意见或答案

Sonu Ranjan

1 个答案:

答案 0 :(得分:1)

在UDP套接字上,该错误可能意味着您收到了一条Port Unreachable ICMP消息,以响应您发送的数据报。

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