关于用UDP协议通讯的问题

mableboy 2003-04-07 03:51:09
我想用UDP协议来通讯,可是在使用过程中遇到了这样的问题:
如果我是先发送一个udp数据包再接收一下时,没有问题,好好的;
可是如果我先试着接收,它就会程序没有响应,不知道怎么回事?
在C#中,有没有象DELPHI中那样,有数据包来就通知你的消息函数(OnDataReceived)?

下面是我的接收数据包的函数,请各位大虾帮忙看看,万分感谢!

IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 1888);
try{


Byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);

string returnData = Encoding.ASCII.GetString(receiveBytes);

MessageBox.Show("This is the message you received " +
returnData.ToString());
MessageBox.Show("This message was sent from " +
RemoteIpEndPoint.Address.ToString() +
" on their port number " +
RemoteIpEndPoint.Port.ToString());
}
catch ( Exception e1 ){
MessageBox.Show(e1.ToString());
}
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mableboy 2003-04-07
  • 打赏
  • 举报
回复
哦!
谢谢!
我试试!
jcaomao 2003-04-07
  • 打赏
  • 举报
回复
你该先加入广播组,接受udp广播。 要想单独接收udp的消息应该用socket。

你把接收消息单独放到一个线程里,用个循环while(true) 来接受,他把一个消息接收完以后才会继续向下,这时如果数据比较大就会阻塞,receiveBytes就是整条消息,接收完就可以处理你的事件了,处理完了接着循环等下一条消息。

个人看法,我也是这几天刚看这方面的资料。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧