现在单位有一项目,需要通过网络从上位机获得数据,协议为udp,然后在下位机通过格式转换把数据通过接口板转发出去,要求数据更新时间为20ms,原来的程序使用的是非阻塞模式+多媒体定时器,在多媒体定时器20ms相应时间中调用recvfrom函数,把数据放入缓冲区中。问题如下:1。这种做法是否可行2.能否通过多线程+阻塞模式来实现,还望高手gg多多指点。
解决方案 »
- vsflexgrid combolist属性 C++
- windows对话框里如何显示 © ?
- 关于数据存储,谢谢~~
- 请高手解决一个有难度的问题!!!
- 谁有工资管理系统的源代码?用VC++做的,发到[email protected]好吗???高分!!
- 如何获得所有的端口号信息?
- 帮我看一下这个要怎样做?
- 出现连接错误 error LNK2001: unresolved external symbol XXXXXX 怎么办?
- 有谁用过十碟装的《全新修正版VISUAL STUDIO 6.0》?有事请教
- 如何在视图(View)中显示一个插入标记(Caret),高分!!!!
- VC中是否有类似delphi中 with a do 的写法??以简化 代码
- 关于串口通讯方面的书籍
UINT MyThread(LPVOID lpvoid)
{
while(1)
{
...
recvfrom();
...
}
return 0;
}如果是非阻塞方式,至少有两个问题。1:cpu占用高2:recvfrom() 经常读不到数据(因为数据没来,取数据时机不当);如果加sleep()延时又容易丢包。
如果是阻塞方式就不存在上述问题。