UDP的奇怪的问题!
小弟从网上抄了些组播的代码,利用 UDP 发送和接收视频的程序,
但有一个现象百思不得其解:
只要发送端程序不拥有键盘焦点,就基本正常;
但一旦发送端程序的窗口获得了键盘焦点,接收端就会丢失大量的包,
这是为什么?哪位朋友给点思路。
问题点数:0、回复次数:9Top
1 楼awjx(啦啦啦)回复于 2004-09-02 08:29:51 得分 0
发送端如果是控制台程序则是正常现像,
如果不是则检查所有控件的事件Top
2 楼szchengyu(happy.net)回复于 2004-09-02 09:36:51 得分 0
to awjx(啦啦啦) 先生:
发送端不是控制台程序,只有三个控件:两个 Button (Start, Stop),一个 Static 用于显示状态。
所有事件只有如下;
这三个是系统产生的,没改过:
OnSysCommand(UINT nID, LPARAM lParam);
OnPaint();
OnQueryDragIcon();
这里是初始化和反初始化:
OnInitDialog();
OnDestroy();
这是启动和停止线程:
OnBtnStart();
OnBtnStop();
Top
3 楼szchengyu(happy.net)回复于 2004-09-11 22:22:03 得分 0
我想来想去,觉得应该跟发送和接收时对包的处理不当,
关键是帧的分隔和组合(一帧图像可能被分成不等的包);
请谈点经验,或给个例子,谢谢Top
4 楼bbcharm(碧海情天)回复于 2004-09-13 08:49:41 得分 0
这个没关系的
你的 采集用的什么 作的阿
应该不会出现这个问题 除非 你采集的时候 根你的窗口有关Top
5 楼rainsly(Godd)回复于 2004-09-13 21:52:12 得分 0
另开个工作线程接收数据
注意验证数据的有效性Top
6 楼szchengyu(happy.net)回复于 2004-09-15 00:52:26 得分 0
to bbcharm(碧海情天):
9494,我也觉得这只是个表面现象(见下述);
to rainsly(落英):
9494,我就是这个意思,但没有看过别人具体的代码,不知道该如何处理,
我自己也试着写了些代码来处理帧边界,但效果总是不够好:(
http://vchelp.net/cndevforum/subject_view.asp?subject_id=107450&forum_id=
能否再指点点,或者有示例性的代码?感激不尽。Top
7 楼taol(taol)回复于 2004-09-15 17:46:54 得分 0
把数据包的接收用一个独立的线程处理。Top
8 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-15 18:02:53 得分 0
可否看看你的代码?Top
9 楼szchengyu(happy.net)回复于 2004-09-15 21:48:26 得分 0
代码在上面的贴子里,接收和发送都是单独的线程Top




