我是在开始编写一个简单的mmo服务器的演示游戏。我正在使用UDP协议(UdpClient),但我想知道其他服务器是如何工作的?
我已经测试了连接50个客户谁发送“平安”信息和服务器必须回答“乒乓”。第50次"Pong“的发送大约需要10秒(在本地主机上)(同时,服务器也应该将ping发送给第一玩家,这样队列就可以延长到几小时,这是荒谬的)。
发布于 2013-10-07 06:13:57
其他服务器使用1),即从任何带有一个套接字的客户端监听(我假设每个UdpClient都有一个套接字)。此外:
在本地主机上执行上述操作(50个客户机发送ping并接收一个只有几个字节的pong )应该花费不到1ms,假设其他进程没有耗尽处理器。
发布于 2013-10-07 01:05:51
我将通过说我不知道MMO服务器的内部结构来限定我的答案。我有点惊讶,50平/乒乓需要10秒,我会认为,特别是在本地主机,它会更快。我怀疑您有某种问题,或者您的客户端初始化起来特别复杂。我建议您下载一些类似于Wireshark (http://www.wireshark.org/)的内容,并查看您的IP通信量,看看实际发生了什么。
如果您玩MMO,您也可以使用wireshark查看正在传输的数据包,并更好地了解它们的服务器正在做什么。
发布于 2013-12-28 23:58:39
你一定做错什么了。我编写了一个服务器,它每秒处理400万个ping/pong消息,每次消息的传递时间为10-20毫秒。我正在使用TCP协议。
我建议您阅读Beej的套接字编程指南,重写客户机/服务器网络代码,看看是否有更好的编号:http://beej.us/guide/bgnet/
https://stackoverflow.com/questions/19214719
复制相似问题