寻找更好的方案:使用udp在internet上面,怎样给800个用户同时发送相同的字符串效率更高。速度最快? ( 积分: 33 )

  • 主题发起人 主题发起人 980
  • 开始时间 开始时间
9

980

Unregistered / Unconfirmed
GUEST, unregistred user!
寻找更好的方案:使用udp在internet上面,怎样给800个用户同时发送相同的字符串效率更高。速度最快?
注意在internet上面,服务器是固定ip的
我使用for i:=0 to 800 do
begin
发送给每一个用户
end;

这样的速度应该不高,怎样能够更快呢,请大家说说想法和贴点代码
谢谢了
 
寻找更好的方案:使用udp在internet上面,怎样给800个用户同时发送相同的字符串效率更高。速度最快?
注意在internet上面,服务器是固定ip的
我使用for i:=0 to 800 do
begin
发送给每一个用户
end;

这样的速度应该不高,怎样能够更快呢,请大家说说想法和贴点代码
谢谢了
 
有没有 这样的部分例子呢,或者介绍介绍 多线程 不也是轮训的吗
 
多线程只能并发,但效率不一定就高。
 
动态生成udp用多线程发送。
做个 upd 控件数组
 
帮你顶。
 
来自:Walnut_Tom, 时间:2005-7-12 11:01:54, ID:3131605
多线程只能并发,但效率不一定就高。

并发怎样实现啊?


来自:靈鴿, 时间:2005-7-12 11:02:46, ID:3131607
动态生成udp用多线程发送。
做个 upd 控件数组

你这样做客户达到10000多怎么办啊,那的多少控件啊
 
找找IOCP(完全端口)的例子,用IOCP做这比较合适
 
找找IOCP(完全端口)的例子,用IOCP做这比较合适
我也找了,看来我的能力不怎么样,发送太长的字符串始终不能,只能短的字符传大约10个左右,我也不知道问题出在什么地方,
 
UDP本来就不适合用来传长字串。
 
来自:东兰梦舞, 时间:2005-7-13 9:02:14, ID:3132600
UDP本来就不适合用来传长字串。

哥们你没有看明白我说的,这个不是很重要的
寻找更好的方案:使用udp在internet上面,怎样给800个用户同时发送相同的字符串效率更高。速度最快?
还有我说的 是
IOCP(完全端口)的例子,用IOCP做这比较合适
我也找了,看来我的能力不怎么样,发送太长的字符串始终不能,只能短的字符传大约10个左右,我也不知道问题出在什么地方,
 
廣播就行了嘛
 
就算是IOCP也要用
for i:=0 to 800 do
begin
发送给每一个用户
end;
来完成。
UDP是无连接的,发送不用等待,这个循环的方法本来就是最快的(没有现成切换)
10个字符也太少了,应该能到2000个字符左右
 
谢谢:datm了
看来也只能这样了,听说并发,不知道什么概念,知道的话给个消息,在此谢谢了
我使用iocp发送的始终是10个字符左右,多了他自己就截掉了。
你说的 10个字符也太少了,应该能到2000个字符左右
该怎样操作 iocp 能向你说的的
 
并发也就是所谓的多线程吧,没多CPU,多网卡,应该不是最优的。

IOCP
OverlappedPlus类型里有个WSABUF的Len就是指定要发送的数据大小,怎么会自己截掉呢?
 
多人网络游戏中如何避免迟延是一个比较重要的话题。
同意datm, loop就可以了, 易于管理

如果网络环境允许, 可以考虑多播, 目前最优的选择
 
来自:datm, 时间:2005-7-15 9:42:45, ID:3135267
并发也就是所谓的多线程吧,没多CPU,多网卡,应该不是最优的。

IOCP
OverlappedPlus类型里有个WSABUF的Len就是指定要发送的数据大小,怎么会自己截掉呢?


你说的这些我没有找到,可以把你的简单的例子,如果方便给我发一个吗
信箱地址是:liu980_980@163.com


来自:Reesinx, 时间:2005-7-15 10:17:34, ID:3135330
多人网络游戏中如何避免迟延是一个比较重要的话题。
同意datm, loop就可以了, 易于管理

如果网络环境允许, 可以考虑多播, 目前最优的选择
多播 在internet上面可以吗,不是受路由器的影响吗
 
是的 多播目前是受到路由器的影响 所以我说需要环境
很多情况下需要具体分析
 
你如果没有找到OverlappedPlus、WSABUF类型,看来你需要好好的学习一下IOCP,一两句话是说不清楚的。
 
后退
顶部