
游戏服务器
时间溜走了
学无止境
展开
-
不同平台下的简易服务器脚本配置
目录 通过main函数传参 int main(int argc, char* args[]); int argc 标识参数的个数 char* agrs[] 标识参数的字符串指针 (注:传参都是字符串形式的) args[0] 参数是程序入口的完整路径 假设生成的文件为 HelloSocket.exe (debug模式下的) int main(int argc, char* args[]){ char* strIp = args[1]; uint16...原创 2020-06-12 15:37:43 · 235 阅读 · 0 评论 -
网络游戏架构设计那些事
一个大型的网落游戏服务器应该包含几个模块:网络通讯,业务逻辑,数据存储,守护监控(不是必须),其中业务逻辑可能根据具体需要,又划分为好几个子模块。这里说的模块可以指一个进程,或者一个线程方式存在,本质上就是一些类的封装。对于服务器的并发性,要么采用单进程多线程,要么采用多进程单线程的方式,说说两种方式的优缺点:一、单进程多线程的服务器设计模式只有一个进程转载 2017-08-28 10:48:17 · 487 阅读 · 0 评论 -
线程安全的对象生命期管理
编写线程安全的类不是难事,用同步原语(synchronization primitives)保护内部状态即可。但是对象的生与死不能由对象自身拥有的 mutex(互斥器)来保护。如何避免对象析构时可能存在的 race condition(竞态条件)是 C++ 多线程编程面临的基本问题,可以借助 Boost 库中的 shared_ptr 和 weak_ptr完美解决。这也是实现线程安全原创 2017-10-27 11:30:29 · 469 阅读 · 0 评论 -
C++操作MYSQL数据库
1.安装mysql略2.建立C++控制台程序,新建CPP源文件,如:sqlconn.cpp3.在工程项目中属性->c/C++->常规->附加包含目录中添加mysql安装目录中的MySQL\MySQL\MySQL Server 5.7\include 4.添加库目录 5.添加依赖项” libmysql.lib” 6.将运行平台改为X64(这步很重要,不然编译时会报错 )7.在源文...转载 2018-04-16 16:56:00 · 10727 阅读 · 0 评论