SGame 简单客户端

本文档介绍了SGame客户端的使用,包括如何编译运行、连接参数设置以及交互和命令行模式的操作,如注册、登录、登出等基本功能。通过示例展示了客户端与服务器之间的交互流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在sgame\client目录下提供了一个game_cli.go,提供了简单的功能,包括注册、登陆和登出

说明

首先进入client目录,然后编译之:go build game_cli.go; ./game_cli

  ./game_cli -h
  -a string
        server ip (default "127.0.0.1")
  -c string
        cmd
  -h    show help
  -k int
        keepalive seconds if method=2
  -m int
        method 1:interace 2:command
  -p int
        server port
  -q    quiet
  ----cmd----
  [ping] ping to server
  [login] login <name> <pass>
  [logout] logout
  [reg] register <name> <pass> <sex:1|2> <addr>
  • -a
    指定连接的connect_serv地址,省略则使用默认的本地127.0.0.1
  • -p
    指定连接的connect_serv监听端口,需要指定
  • -m
    指定运行的模式,1为交互模式; 2为命令行模式,执行一条命令则退出
  • -k
    只对命令行模式有效,客户端运行命令之后仍然保持连接的时间
  • -q
    只显示关键信息,忽略冗余信息
  • -c
    输入的命令,只对命令行模式有效,交互模式下手动输入相关命令即可,支持的命令在cmd里给出,在下面详细说明.

命令

下面的情况均工作于交互式模式下
./game_cli -p 18909 -m 1

  • PING
    一个RTT的流程是CLIENT-->CONNECT_SERV-->LOGIC_SERV-->CLIENT.演示如下:
please input:>>ping
ping...
send cmd:ping success! 
ping:8 ms crr_ts:1596545728717835 req:1596545728708842
please input:>>ping
ping...
send cmd:ping success! 
ping:8 ms crr_ts:1596545733069217 req:1596545733060415
  • REG
    reg是注册功能,注册的参数需要包括name pass sex addr 参数以空格分隔,演示如下:
//不带参数
please input:>>reg
----cmd----
[ping] ping to server
[login] login <name> <pass>
[logout] logout
[reg] register <name> <pass> <sex:1|2> <addr>
//注册成功
please input:>>reg suomei suomei123 1 sz
reg... name:suomei pass:suomei123 sex:1 addr:sz
send cmd:reg suomei suomei123 1 sz success! 
reg result:0 name:suomei
//重复注册
please input:>>reg suomei suomei123 1 sz
reg... name:suomei pass:suomei123 sex:1 addr:sz
send cmd:reg suomei suomei123 1 sz success! 
reg result:1 name:suomei
please input:>>

上面演示了不带参数,注册成功和重复注册的情况。这里以name为key,需要保持唯一性

  • LOGIN
    login是用已注册的角色进行登陆,需要提供姓名和密码,演示如下:
//密码错误
please input:>>login suomei 1999
login...name:suomei pass:1999
send cmd:login suomei 1999 success! 
login result:2 name:suomei
//用户名错误
please input:>>login suoxxmei 1999
login...name:suoxxmei pass:1999
send cmd:login suoxxmei 1999 success! 
login result:2 name:suoxxmei
//成功登陆
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success! 
login result:0 name:suomei
uid:10003 sex:1 addr:sz level:1 Exp:100 ItemCount:100
[13694488209648602] res:1096 count:10 attr:0
[13975963186359258] res:1098 count:10 attr:0
[1450326722735066] res:1009 count:10 attr:0
...

上面演示了登陆的几种情况,最后登陆成功并打印了仓库。在角色初始登陆时候会给仓库加上100个道具以便测试

  • LOGOUT
    logout用于退出登陆,如下:
...
[2435489141222362] res:1016 count:10 attr:0
[5953926350105562] res:1041 count:10 attr:0
please input:>>logout
logout...
send cmd:logout success! 
logout result:0 msg:fuck
please input:>>
  • LOGIN PS 这里也提供了登陆踢线的情况(这也是为什么部署两个group来演示),如下所示:
//1.首先客户端连接conne_serv1从而在logic_serv1登陆 
./game_cli -p 18909 -m 1
start client ...
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success! 
login result:0 name:suomei
uid:10003 sex:1 addr:sz level:1 Exp:100 ItemCount:100
[13975963186359258] res:1098 count:10 attr:0
[6516876303526874] res:1045 count:10 attr:0

//2.新开一个端口连接conn_serv2从而在logic_serv2登陆 
./game_cli -p 18910 -m 1 
start client ...
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success! 
login result:4 name:suomei

//3.这时发现该客户端返回4,同时前一个登陆已经被踢下线鸟:
...
[11020475930897370] res:1077 count:10 attr:0
[4124339001486298] res:1028 count:10 attr:0
please input:>>logout result:2 msg:login-other
read failed! err:EOF

//4.返回新客户端重新登陆成功:
...
login result:4 name:suomei
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success! 
login result:0 name:suomei
uid:10003 sex:1 addr:sz level:1 Exp:100 ItemCount:100
[3279914071354330] res:1022 count:10 attr:0
[3420651559709658] res:1023 count:10 attr:0
...

上面的只是简单的说明,新加的功能可以进一步完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值