首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

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

2012-02-07 
多个socket能不能同时从一个端口接收到相同的数据?创建10个线程,每个线程里都创建一个socket,可不可以10个

多个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的源代码

热点排行