读书人

Socket异步接收有关问题BeginReceiv

发布时间: 2012-04-10 21:03:56 作者: rapoo

求助:Socket异步接收问题,BeginReceiveFrom总是报错,不知道如何解决
代码如下:
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Broadcast,5000);
EndPoint endPoint = (EndPoint)ipEndPoint;
udpClient.Bind(ipEndPoint);
udpClient.BeginReceiveFrom(responseBuffer,0,responseBuffer.Length,SocketFlags.None,ref endPoint,new AsyncCallback(ReceiveCallback),udpClient);

总是报错:在其上下文中,该请求的地址无效

不知道怎么回事,事情很急,感谢大家了

[解决办法]
2 remoteEp 是数据来源远程主机终结点
之所以这么给 是因为BeginReceiveFrom 方法启动从远程主机异步读取无连接数据报的操作
再通信之前不需要知道对方的endpoint
[解决办法]
1 bind绑定本地端 是绑定了接受端 和谁发信息毫无关系
[解决办法]
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Broadcast,5000);

这里错了

应该是IPAddress.Any, 0

如果你用异步的路子来写的话,得到对方的ip应该是在 socket.EndReceiveFrom(IAsyncresult, ref endpoint) 这里的endpoint

BeginReceiveFrom里也提供了, 我觉得只是为了方便, 如果你想写在这里雕完函数马上阻塞, 组塞之后,就可以在endpoint里得到对方的地址了,不用在End之后

读书人网 >C#

热点推荐