网络五子棋 一 关于务器端的设计

首先说明,此小程序是写完后才更新本博客的,所以程序中涉及的内容都是完整了的,与客户端的联系还得等待接下来的更新才会联系得上。

第一点:程序只属于个人测试程序,带有调试信息,同时也还有很多的不完善,觉得不好的,请各位尽管拍砖。~~

下面说正题:

开发环境和工具:Ubuntu 12.04、 Qt4.7 、vi
使用语言:C/C++

详细设计过程:

第一步,要设计一个服务器端,首先要考虑的就是我们如何初始化我们自己的服务器,然后设置好本地的服务器之后,等待客户端的连接。
这里我采用的是linux下的socket编程,按照之前在博客中提到的七步,初始化和设置本地服务器。之后便是开始监听,然后等待客户端的链接。

第二步:当有客户端连接到服务器端之后,我们需要做的是把客户端的连接fd存储起来,然后开辟一个线程用于处理客户端的请求。
在这里我使用的是C++中的容器vector,我在程序中设置了一个全局的vector变量,用于存储客户端的连接到服务器分配给客户端的fd。以便我接下俩用于发送消息回客户端。

第三步:当客户端连接上后,我们需要做的便是开始处理线程,我们为没一个客户端的连接开辟了一个线程处理函数,处理客户端的连接。

第四步:我们开始线程后,就是处理客户端的信息了,这使用了简单的客户端和服务器的数据封装,以便我方便解析到底客户端发送过来的是命令信息还是聊天信息。这样我就可以知道客户端到底想干嘛,然后分别做不同的处理。

关于协议封装这一块,其实还有很多可以做,这里我只是简单的定义了一个头,区分命令和聊天信息而已,有兴趣的可以继续深入协议封装。想现在的zigbee这类的技术。很多都支持二次封装开发。

以下我会给出整个实现的代码,并且写有很多注释。具体要联系接下来的客户端代码一起看,才好。尽量在未来3天内更新。