一
一个过客
Unregistered / Unconfirmed
GUEST, unregistred user!
在互联网上的TCP/IP通讯中,一个server如果带大量client,比如1000个,如果server
有某个消息需要及时送达所有客户端,而且尽量保证减少延时,那么应该怎么做?
比如server端保存了一个在线的client列表,发送消息的时候就循环遍历这个列表,
给列表中的每一个client发送,但是循环1000次也是一个不短的时间,排在列表最后的
client将比第一个client晚收到消息不少。
方法一:改用UDP的组播(不是广播)方式,一次全部发送出去,这样不用遍历列表。但是
我试验了一下(用在本论坛搜索到的那个MulticastSocket控件),好像组播不能跨网段,
只能在同一个网段内实现;
方法二:用线程。不过用线程一样涉及到遍历列表1000次的延时。
不知道大伙遇到这种问题是怎样解决的?
有某个消息需要及时送达所有客户端,而且尽量保证减少延时,那么应该怎么做?
比如server端保存了一个在线的client列表,发送消息的时候就循环遍历这个列表,
给列表中的每一个client发送,但是循环1000次也是一个不短的时间,排在列表最后的
client将比第一个client晚收到消息不少。
方法一:改用UDP的组播(不是广播)方式,一次全部发送出去,这样不用遍历列表。但是
我试验了一下(用在本论坛搜索到的那个MulticastSocket控件),好像组播不能跨网段,
只能在同一个网段内实现;
方法二:用线程。不过用线程一样涉及到遍历列表1000次的延时。
不知道大伙遇到这种问题是怎样解决的?