游戏开发论坛

 找回密码
 立即注册
搜索
查看: 11009|回复: 24

在本地测试网络同步时消息延迟有好几百毫秒,这正常吗?

[复制链接]

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2007-6-9 20:48:00 | 显示全部楼层 |阅读模式
客户端和服务器端运行在一台机器上,通过127.0.0.1来传送,传的是物体的位置和运动信息,服务器端和客户端同时做运动模拟,结果发现客户端收到的信息总比客户端自己模拟出来的结果滞后,渲染出来就是物体下降了一段,然后又被拉回去一点再继续下降,然后又被拉回去……测量了一下,发现从数据被发出到数据被接收到经过了好几百毫秒,我想是这几百毫秒在物理模拟的运算过程中被放大了。虽然在internet上是一定要根据网络延时对数据包进行修正的,但现在的测试是在本地啊,竟然就有这么大的延时?这正常吗?
[em7] [em7]

59

主题

1490

帖子

1496

积分

金牌会员

Rank: 6Rank: 6

积分
1496
发表于 2007-6-10 06:32:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

wow、传奇类代码的传统分布式最好也就达到这个水平了,业界都知道只是过时玩具而已,不要太认真。

EVE实际小于10毫秒。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2007-6-10 10:08:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

-_-#
首先感谢6377友情顶贴……
然后,这是我自己写的程序,比wow之类的烂多了
再然后,我的客户端和服务器都是单进程单线程的,谈不上什么分布式
最后,我问的是数据在本地(127.0.0.1)从send()到recv()之间的时间间隔这么长是否正常……

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2007-6-10 10:59:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

看你的系统版本,如果是没打过补丁的win2000可能会出现这种情况,
该系统使用环回地址时会用较大的MTU大小(32KB).这会带来TCP窗口计时问题.
打个serverpack3就行了.其他情况就是你的recv处理有问题.
一般用环回地址,数据几乎都是直接copy速度很快,延迟极小.

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2007-6-10 11:09:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

谢谢filx,我的系统是Windows XP Professional Service Pack 2,这个会不会有问题?

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2007-6-10 11:15:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

应该不会,你如果上网的话,直接使用外网IP或者局域网IP试试,或者直接使用电脑名称连接.
这2种都不行的话肯定是代码有问题了.

59

主题

1490

帖子

1496

积分

金牌会员

Rank: 6Rank: 6

积分
1496
发表于 2007-6-10 15:07:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

来晚了,舒服地睡了一觉。

看来和你的具体实现细节有很大关系。

首先,你请说出使用的网络 I/O 是什么?

然后,你的同步是采用的什么模式,就是技术原形是什么,也请讲出来。

还有。。。—*……¥###·))(¥$$$$$

等你说了我再接着说,呵呵

59

主题

1490

帖子

1496

积分

金牌会员

Rank: 6Rank: 6

积分
1496
发表于 2007-6-10 15:10:00 | 显示全部楼层

Re: Re:在本地测试网络同步时消息延迟有好几百毫秒,这

filx: Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常吗?

应该不会,你如果上网的话,直接使用外网IP或者局域网IP试试,或者直接使用电脑名称连接.
这2种都不行的话肯定是代码有问题了.


不要用什么IP或者外网了,本地虚拟127.0.0.1是速度最快的网络回路了。

主要是你的程序架构基础问题,这个没有经验,你现在出现的情况是肯定的。否则你也太小看MMOG服务器端的技术了。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2007-6-10 15:44:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

我试过了,用局域网IP后延迟还是这样,回头得检查一下代码。

6377,你这样很随意得评判别人的技术水平可不礼貌……
我用的是libevent,它封装了select、epoll、kqueue等api,用它主要考虑的是跨平台和方便。但我知道不太可能是它引起的问题。
6377,我很欢迎你参与讨论,但是请不要再抬高eve或者贬低其他技术或人了,这种攻击和争吵没有意思。

59

主题

1490

帖子

1496

积分

金牌会员

Rank: 6Rank: 6

积分
1496
发表于 2007-6-10 15:56:00 | 显示全部楼层

Re:在本地测试网络同步时消息延迟有好几百毫秒,这正常

你用libevent,问题可能就出在这里。

同步是采用的什么模式,就是技术原型是什么,你应该不清楚吧?

至于说到技术批评,这只是个人的风格习惯问题,不涉及到其他。如果你有不适,可以说出来改进之。也没有其他意思在里面,呵呵

PS:EVE只是一种成功集成模式的典范。没有其他任何意思。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 04:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表