游戏开发论坛

 找回密码
 立即注册
搜索
楼主: sjinny

我写的网络模块,大家来看看,不用也来讨论讨论……

[复制链接]

4

主题

64

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2009-5-20 17:33:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

就是没有见过这么做的,长见识了。虽然我不认为好,不过总算有自己的想法,所以敬仰一下啊。


原来两人在上班时间也能让帖子翻页,哎,对不起公司啊。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2009-5-21 00:08:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

@_@!
那你觉得这样做会有什么问题呢

4

主题

64

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2009-5-21 09:32:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

不知道。有人用了才知道。我一般不用新东西的。

12

主题

112

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2009-5-22 18:28:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

开源不错,呵呵,如果是为游戏服务器服务器得网络模块,可以先深入了解下比较常用的游戏服务器架构会是什么样子。比如会不会有多个服务器,服务器和服务器之间的通讯和服务器和客户端之间的通讯用一样的方式合适吗?如果用你的这个网络模型要怎么样来连接某个架构的服务器组呢?

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2009-5-23 12:03:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

游戏服务器里多进程架构还是比较典型的。
不知道“服务器和服务器之间的通讯和服务器和客户端之间的通讯用一样的方式合适吗?”这个问题从何而来,实际上由于netgate目前只支持linux,所以目前没法用于windows上的客户端,只能用在linux上的服务器端。不过理论上即使是客户端也可以用netgate的,只不过这样客户端就只能在linux下跑了。

其实netgate跟服务器组架构关系不是特别大了,无非就是需要用到网络通信的地方就用下netgate,至于那些服务器程序自己做些什么跟netgate关系不大了。

12

主题

112

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2009-5-25 15:14:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

由于游戏的逻辑包都是比较小的,你有考虑过需要组包后发送吗?服务器和服务器之间一般是局域网内,你有没有考虑过可以使用UDP呢。

12

主题

112

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2009-5-25 15:16:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

如果仔细考虑的话,可能就会觉得对客户端的连接跟对服务器的连接区分对待好些。

12

主题

112

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2009-5-25 15:24:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

而且最好能够考虑客户端的网络问题,因为如果别人要运用的话,毕竟还是希望这个是一套完整的库,如果还要别人去比较深入的了解网络方面的东西的话,会造成不少别人使用的阻力。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2009-5-25 16:51:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

呃……首先感谢ls的三连回复……

你说的组包是指把多个小包合并起来一起发送,以此来省一点TCP包头的开销吧?其实这个OS已经做了,就是nagle算法,默认情况下这是打开的。
另外虽然服务器之间一般是局域网,但并不一定用UDP就更好,因为局域网的网速比外网高、更稳定,所以用TCP也不会有太大的性能问题,而UDP还要自己处理丢包和乱序的问题。

不知道你这里“对客户端的连接跟对服务器的连接区分对待”是什么概念。如果说是客户端用的网络模块和服务器端的网络模块不一样,我倒觉得没这必要了。

我也希望客户端能用,实际上linux下能运行的客户端就能用,只不过现在不支持win平台。
另外netgate设计的时候就希望使用者不需要了解网络通信的细节,所以使用者只需要跟stdio打交道。而载入的动态链接库,实际上是具有通用性的,需要的开发量会很小。

12

主题

112

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2009-5-25 17:18:00 | 显示全部楼层

Re:我写的网络模块,大家来看看,不用也来讨论讨论……

据我了解,有些网游的网络库会自己去组包,因为主要的瓶颈是在CPU上,频繁的调用OS的消息发送会比较慢,所以会自己组包,这样减少对OS的调用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 04:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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