组播数据接收问题

blackeye527 2002-07-16 09:45:02
我用Select模型接收网络组播数据。网络数据发送比较慢时,一切正常;但是组播数据发送比较块时,接收端接收几个数据包后就在再也收不到数据了。不知有谁遇到过该问题,可否指点一二,不胜感激!!!!!!!!!!!!!(接收端是Win2000,发送端是VxWorks)
...全文
70 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
blackeye527 2002-07-18
我再试试
回复
blackeye527 2002-07-17
谢谢,我手头一直有这本书
回复
gdxflm 2002-07-17
1 setsockopt将接收缓冲增加
2 将select采样时间缩短
3 数据处理和接收采用多线程,或多队列,也可以考虑多端口收发
4 server和client要有一定的适配速率,也就是说,控制发送方的速率

udp和tcp不同,没有流量控制功能,说得通俗一点,发送方式可以不管接收方的死活的,因此你必须自己设计和考虑这些问题。
如果这些都不能满足你的要求,那你就得从自己的系统设计考虑了,你的设计是否能够满足应用要求。
回复
countryroad 2002-07-17
推荐看windows网络编程这本书。
回复
unkill 2002-07-17
如果接收端阻塞住的话,很快接收缓存就应该满了,发送端应该就会出错。
另外你试试看把接收端的接收缓存开的大一些。
回复
blackeye527 2002-07-17
发送端正常
回复
Silva_Zhao 2002-07-17
和我的问题一样,我是要实时发送视频数据,结果只能收到一点点东西,然后就什么也收不到了,除非让数据很慢地发送。但实时性就不提啦。难道组播不能用于发送实时数据吗?
回复
unkill 2002-07-17
试试从发送端看看,当接收端阻塞后,发送端的发送数据是否还正常。
回复
blackeye527 2002-07-16
不过,我的数据量就是比较大啊。用于传输实时图像数据。要是,期间丢几个包倒是没问题,不过现在的情况是一开始收几个包后就再也收不到数据了,接收程序一点反应也没有。假如跟踪程序的话会发现Select()一直被堵死了。不知有谁曾经遇到过此类问题。
回复
xuying 2002-07-16
应该是报文太多,socket处理不了了。控制一下发送速度。
回复
blackeye527 2002-07-16
有没有更好的解决方法,欢迎大家继续讨论
回复
blackeye527 2002-07-16
设置超时........好像不太能符合我这个项目的实际需求
回复
countryroad 2002-07-16
select可以设置超时的阿。
一旦有数据到达或者超时都会重新select.
回复
发动态
发帖子
通信技术
创建于2007-08-27

3963

社区成员

通信技术相关讨论
申请成为版主
社区公告
暂无公告