我有一个小问题和一个解决方案,但我想知道到底发生了什么。根据UdpClient的构造函数,我使用EndReceive()抛出套接字异常( 10054 -现有连接被远程主机关闭(从德语翻译过来))
谢谢你的任何提示!文森
private UdpClient udpClient;
void recv(IAsyncResult res)
{
IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);
byte[] data = udpClient.EndReceive(res, ref remote); // code stops here in debug
// do something with data received from remote
udpClient.BeginReceive(new AsyncCallback(recv), null);
}
private void Form1_Load(object sender, EventArgs e)
{
//udpClient = new UdpClient(); // will throw exception
udpClient = new UdpClient(8000); // will not throw exception
udpClient.Connect("127.0.0.1", 8000);
udpClient.BeginReceive(new AsyncCallback(recv), null);
}
private void button1_Click(object sender, EventArgs e)
{
udpClient.Send(Encoding.ASCII.GetBytes("Hallo"), 5);
}发布于 2011-09-14 23:09:34
案例1: udpClient =新的UdpClient() -您将套接字绑定到随机本地端口
案例2: udpClient =新的UdpClient( 8000 ) -您将套接字绑定到本地端口8000
也许在第一种情况下,远程主机尝试发送到随机端口并被防火墙拒绝?
https://stackoverflow.com/questions/7418338
复制相似问题