专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 网络通信

多个socket能不能同时从一个端口接收到相同的数据?该如何处理

发布时间:2011-07-03 07:14:06 文章来源:www.iduyao.cn 采编人员:星星草
多个socket能不能同时从一个端口接收到相同的数据?
创建10个线程,每个线程里都创建一个socket,可不可以10个线程同时从一个地址、端口接收到相同的数据?

------解决方案--------------------
探讨
创建10个线程,每个线程里都创建一个socket,可不可以10个线程同时从一个地址、端口接收到相同的数据?

------解决方案--------------------
你这样是不行的,但线程之间可以共享socket,所以只用创建一个socket,多个线程可以共享。注意线程同步问题
------解决方案--------------------
探讨

也就是说是不行的,多个socket从相同端口接收时就相当于是多线程接收?
有一点十分不解,recv执行后这个端口的数据被复制到用户缓存,这时网卡缓存还存在相同的数据吗?

------解决方案--------------------
学习。。。
------解决方案--------------------
1.线程之间共享socket
2.只用一个线程创建socket,其它线程间通过event通讯,应该可以达到目的!
------解决方案--------------------
可以看一下地址和端口复用方面的东西。
------解决方案--------------------
探讨
我的测试结果是可以同时接收,我创建了多个socket同时从一个地址和端口接收组播,而且还使用了异步IO

------解决方案--------------------
可以的.
只允许一个线程Accept, accept之后就可以多线程了。

就像FTP,所有的用户都是连的21端口

http://supersocket.codeplex.com/

你可以看看SuperSocket的源代码
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: