游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1314|回复: 0

SRP分布式网游平台中的通信技术(2)-开放的传输接口

[复制链接]

17

主题

22

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2008-2-18 22:23:00 | 显示全部楼层 |阅读模式
        SRP平台是一个分布式对象平台,同时也是一个网游平台,SRP平台提供的强大灵活的工作方式,适合在网游中应用。SRP平台封装了基于Socket的通信接口,支持可靠和非可靠的通信方式,同时提供了分布式对象的通信接口。在底层,开发者可以通过开发相应的接口模块,自行定义通信的方式,包括使用TCP,UDP,或者其它任何特殊的传输方式。
SRP平台通信结构如下图所示:
---------------------------------
|   高层应用          |
--------------------------------
        |
------------------------------------------------------------------------------------------
|                          SRP平台                          |
|------------------------------------------------------------------------------------------|
| 对象通信接口 |  | 可靠Socket通信接口 | 非可靠Socket通信接口 |
--------------------------------------------------------------------------------------------
       |-------------------------------------------------|
---------------------------------        ---------------------------------
| 默认TCP通信接口    |        | 自定义通信接口      |
---------------------------------        ---------------------------------
在客户端,自定义通信接口如果不存在,将由SRP平台自动下载,详细开发自定义接口的例程和接口手册可参考网站http://www.srplab.com相关文档。使用者可以自行开发通信接口,可以灵活适应各种情况,包括TCP、UDP、SCTP、隧道代理方式,传输层加密等等。
        链路层接口非常简单,编译成为DLL,完整VC例程可以从网站直接下载。

1.服务器端建立流程
        作为通信的服务器端,首先建立侦听端口,等待客户端与之建立连接。
a.        服务器端平台调用链路层函数VSNetComm_LinkLayer_SetupServer,传入端口,参数和带宽需求,请求链路层建立服务器端。
b.        链路层建立服务器端,返回建立的服务器端的ID。
c.        服务器端建立完毕,等待客户端链接。

2.客户端建立流程

a.        客户端平台调用链路层函数VSNetComm_LinkLayer_SetupClient,传入服务器端地址,端口,和参数,请求建立连接。
b.        客户端链路层返回连接的ID
c.        客户端链路层与服务器端链路层进行交互,完成连接的创建
d.        客户端链路层向平台发送增加连接的响应LinkLayerMessage_AddLink,
e.        服务器端链路层向服务器端平台发送增加连接的请求LinkLayerMessage_AddLink。
f.        客户端平台启动平台层的初始化过程,链路层对于数据包进行透明传输。
SRP平台通过开放链路层接口,使其能够适应各种应用场景,支持各种底层的通信方式。同时为后继实现传输层的负荷分担,各种方式的负荷分担提供了可能性。目前SRP平台默认使用TCP传输。如果有兴趣,可以参考例程,自行开发各种链路层接口,作品可以发给星河工作室,成熟的作品可以加入SRP平台的发行包中。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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