SGame 连接选项

本文详细介绍了SGame的连接配置,包括logic_serv, log_file, max_conn, listen_addr等参数。重点讨论了连接验证和加密方式,如NET_ENCRYPT_DES_ECB, NET_ENCRYPT_AES_CBC_128, NET_ENCRYPT_RSA。当valid_conn开启时,客户端必须发送VALID_CONN_KEY进行验证,并可能涉及DES&AES密钥的交换。RSA加密需要生成公私钥文件,如openssl命令生成的rsa_private_key.pem和rsa_pubblic_key.pem。在验证和加密过程中,客户端和服务器通过特定的包进行交互以确保安全通信。" 133657470,20014629,MySQL索引:VARCHAR与CHAR的大小计算,"['数据库', 'MySQL', '索引优化', '数据结构', '数据库设计']
摘要由CSDN通过智能技术生成

连接选项

conn_serv.tmpl模板包含一些连接配置,这里将主要的进行说明:

{
  "logic_serv":$logic_serv,
  "log_file":"conn_serv.log",
  "max_conn":10000,
  "listen_addr":"$listen_addr",
  "manage_addr":["$m_addr"],
  "zlib_on":1,
  "valid_conn":1,
  "enc_type":3,
  "rsa_pub_key_file":"cfg/rsa_public_key.pem",
  "rsa_pri_key_file":"cfg/rsa_private_key.pem",
  "monitor_inv":5
}
  • logic_serv:对应的上游logic_serv的proc_id
  • log_file:该进程的本地日志
  • max_conn:最多连接数目
  • listen_addr:监听的地址及端口
  • manage_addr:管理进程的地址
  • zlib_on:是否进行数据压缩1打开. 0:关闭
  • valid_conn:是否进行连接基本验证1:打开 0:关闭
  • enc_type:加密方式 后面说明
  • rsa_xx: 当使用RSA加密时的公私钥文件 后面说明
  • monitor_inv:每次像管理进程汇报的间隔时间(秒)

连接验证

对应于conn_serv.tmpl配置项的valid_conn.如果打开验证则需要连接成功后的第一包客户端使用lib/net/net_pkg.go:VALID_CONN_KEY上行,否则会关闭连接。同时如果使用了加密,在通过验证的回包里会捎带DES&AES的密钥和RSA的公钥.

  • 客户端代码如下:(game_cli.go)
    func ValidConnection(conn *net.TCPConn) bool {
        //pack
        pkg_buff := make([]byte , 128)
        pkg_len := lnet.PackPkg(pkg_buff , []byte(lnet.CONN_VALID_KEY) , lnet.PKG_OP_VALID)
        if pkg_len <= 0 {
      fmt.Printf("valid connection pack failed! pkg_len:%d\n" , pkg_len)
      return false
        }
        ...   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值