本文描述关于flightgewar的联飞服务器fgms的vs2013构建及简要的分析下。

必备

fgms项目:https://gitlab.com/fgms/fgms-0-x

多线程库pthread win32:ftp://mirrors.kernel.org/sourceware/pthreads-win32/pthreads-w32-2-9-1-release.zip

fgms的配置文件http://flightgear.mxchange.org/fgms/fgms.conf

生成工程方案

打开cmake,fgms的目录下分别填入

source code:E:/fgms-0-x-master

build the binaries:E:/fgms-0-x-master/build

configure->选择vs2013->Finish。

设置pthread的路径

E:fgms-0-x-masterpthreadsPre-built.2include

E:/fgms-0-x-master/pthreads/Pre-built.2/lib/x86/pthreadVC2.lib

Generate生成解决方案->编译生成exe,拷贝pthreadVC2.dll到E:fgms-0-x-masterbuildDebug目录下。

复制文件fgms.conf到C:Usersfreeyun(备注这个是我的用户文件夹,紧供参考。)

fgms.conf这个我还域名深入去研究过它的参数,参数说明http://fgms.freeflightsim.org/fgms_conf.html。

源码简要分析

全部联机玩家的列表:m_PlayerList

//发送数据
int netSocket::sendto ( const void * buffer, int size,
                        int flags, const netAddress* to )
//接收数据
int netSocket::recvfrom ( void * buffer, int size,
                          int flags, netAddress* from )

写在后面

本来是想研究网络游戏的位置同步,不停的查找开源的项目,想起flightgear的项目,发现支持cmake生成。笔者只是初略的看源码,没深入,希望能给flighgear的研究的抛砖引玉,这里没写出联机设置,手册已经有了没必要在这里重复。

联机设置:http://wiki.flightgear.org/Howto:Multiplayer

更多的参考资料:http://fgms.freeflightsim.org/。