关于用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());
}
...全文
66 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mableboy 2003-04-07
  • 打赏
  • 举报
回复
哦!
谢谢!
我试试!
jcaomao 2003-04-07
  • 打赏
  • 举报
回复
你该先加入广播组,接受udp广播。 要想单独接收udp的消息应该用socket。

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

个人看法,我也是这几天刚看这方面的资料。
内容概要:本文档聚焦于基于Peng-Robinson状态方程的化工热力学计算研究,系统介绍了利用Matlab代码实现纯组分及多组分系统的压缩因子(z因子)和逸度系数的计算方法,并进一步拓展至泡点压力与露点压力的数值求解。资源涵盖了从状态方程推导、非线性方程求根、相平衡条件判断到迭代算法实现的完整技术路线,提供了可运行的Matlab程序代码,有助于深入理解实际工程中物性参数的计算原理与实现过程; 适合人群:具备化工热力学基础知识和一定Matlab编程能力的高校学生、科研人员及工程技术人员,尤其适合从事过程系统模拟、油气田开发、精馏设计及相关领域研究的专业人士; 使用场景及目标:① 掌握Peng-Robinson方程在真实气体物性计算中的应用;② 实现多组分混合体系的相平衡计算与泡/露点预测;③ 为Aspen Plus等商用流程模拟软件提供底层算法验证与教学参考;④ 支持科研论文复现、课程设计、毕业设计及工业过程优化中的热力学数据支撑需求; 阅读建议:建议读者结合经典化工热力学教材同步学习,重点理解立方型状态方程的根判别、迭代收敛策略与相平衡准则的数学表达,动手调试并运行所提供的Matlab代码以掌握算法细节,还可将其扩展应用于其他状态方程(如SRK、vdW)的对比分析研究。

111,130

社区成员

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

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

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