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

多个socket能不能与此同时从一个端口接收到相同的数据

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

多个socket能不能同时从一个端口接收到相同的数据?
创建10个线程,每个线程里都创建一个socket,可不可以10个线程同时从一个地址、端口接收到相同的数据?
[解决办法]

引用:
创建10个线程,每个线程里都创建一个socket,可不可以10个线程同时从一个地址、端口接收到相同的数据?


 第一个socket绑定了一组(地址,端口),后面的socket再想绑定同一个(地址,端口),会返回错误:)


你平时使用一些软件的时候,应该就看到过端口已经被占用的情况。


- 千里孤行
[解决办法]
你这样是不行的,但线程之间可以共享socket,所以只用创建一个socket,多个线程可以共享。注意线程同步问题
[解决办法]
引用:
也就是说是不行的,多个socket从相同端口接收时就相当于是多线程接收?
有一点十分不解,recv执行后这个端口的数据被复制到用户缓存,这时网卡缓存还存在相同的数据吗?


网卡缓存里面的数据只能被取走一次,取走了就没有了
应该是可以共享数据,而不能共享端口
[解决办法]
学习。。。
[解决办法]
1.线程之间共享socket
2.只用一个线程创建socket,其它线程间通过event通讯,应该可以达到目的!
[解决办法]
可以看一下地址和端口复用方面的东西。
[解决办法]
引用:
我的测试结果是可以同时接收,我创建了多个socket同时从一个地址和端口接收组播,而且还使用了异步IO


我表示很好奇,能否分享下你的代码
[解决办法]
可以的.
只允许一个线程Accept, accept之后就可以多线程了。

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

http://supersocket.codeplex.com/

你可以看看SuperSocket的源代码

热点排行