|
方案1:一个socket,一个包一个包循环发送 方案2:建立n个线程,每个线程用一个全局的socket发送数据 方案3: 建立n个线程,每个线程创建一个独立的socket,发送数据 请问几种方案,各有什么优点,哪种更好 |
|
|
|
我也考虑过这样的问题。
一般是这样的做法,一个线程管理若干个比如是50。分级处理。每个纯程内用一个socket. 我倒有一个种幼稚的想法,不管如何,在单机上怎么都是轮询发送的。 局域网中,一个叫做种子机,计算和广播全局信息,其它发送机,管理登录用户,分析广播信息再轮询发送。不过只是设想,没有科学依据的。 |
|
|
我主要是想知道的是:socket底层的一些效率问题。同时用多个socket发送数据,和用一个socket发送数据有何区别。如果一个sendto时阻塞了,那么,不管是用循环发送,还是线程同步发送时,都会塞住。
|
|
|
关注
|
|
|
用udp的广播属性,就可以做到,发送一次,多人接受的效果!
|
|
|
那用组播岂不更好?又可以一次发送给多个人还可以控制接受的人
|
|
|
你如果用UDP那么就不用考虑阻塞的问题了啊,建议你再每个线程里面用一个socket,因为你每个socket里面的数据都不一样,至少ip不一样.
|
|
|
有没有具体做过的。。。我现在觉得用循环比较好啊
广播和组播我不采用,因为网络条件达不到 |
|
|
大家再讨论一下吧
|
|