首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Socket异步接收有关问题,BeginReceiveFrom总是报错,不知道怎么解决

2012-04-10 
求助:Socket异步接收问题,BeginReceiveFrom总是报错,不知道如何解决代码如下:IPEndPointipEndPointnewIPE

求助: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之后

热点排行