SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

服务器编程

查看数: 5111 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-9-5 18:43

正文摘要:

server::run()一些注释 1、network::accept_connect是非阻塞等待。 2、string_ip:本机连接时是127.0.0.1。 3、reason:空。指示accept_connect过程没有发生错误。 4、sock:为此个客户端服务的sock。 处理登陆 登 ...

回复

ancientcc 发表于 2020-9-5 18:45:18

对韦诺之战服务器代码做的修改

服务器尽量会做到和韦诺之战服务器通用。能不改的尽量不改。

server::read_config()


当中要读服务器配置,这个配置往往被放在My Documents目录下,而在Windows下这个目录往往带中文,这时需要能解析中文目录名的读文件函数。
  1. scoped_istream stream = preprocess_file(config_file_);
  2. 改为
  3. scoped_istream stream = istream_file(config_file_, true);
复制代码
对于“建立联网游戏”,它是启动游戏时自动启动服务器,这时要读取的配置文件往往是放在My Documents目录下。
ancientcc 发表于 2020-9-5 18:44:50
A:如何让0.1.6的客户端登陆进1.9.x的服务器?
Q:修改multiplayer.cpp中的open_connection(...),
  1. if(data.child("version")) {
  2.         config cfg;
  3.         config res;
  4.         cfg["version"] = game_config::version;
  5.         res.add_child("version", cfg);
  6.         network::send_data(res, 0, true);
  7. }
  8. cfg["version"] = game_config::version改为cfg["version"] = "0.1.5";
复制代码
A:登陆后,如何让0.1.6的客户端使用1.9.x的服务器?
Q:使用后要做到:
1、kingdom客户端不能“加入”、“观察”wesnoth创建游戏。
2、wesnoth客户端不能“加入”、“观察”kingdom创建游戏。
实现方法:
创建游戏时会发送[create_game]块,[create_game]中除了name字段可以有password。让kingdom创建游戏时使用一个固定密码(会使用checksum),客户端要加入需要这个密码。kingdom客户端会自动给出这个密码,wesnoth客户端则要求这个密码,但不知道这个密码无法“加入”、“观察”这个游戏。
改了era,让wesnoth客户端都认为是“未知时代”,以灰掉“加入”、“观察”按钮。



A:创建的游戏中含有较验码,避免客户端配置文件不一致的玩同一个剧本?
Q:

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-2 04:12 , Processed in 0.067071 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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