精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务器与客户端的连接是利用Windows套接字及网络连接来实现的,但是服务器端与客户端能够进行良好的通信,能够发送各种命令及请求则是依赖与服务器和客户端之间的公共数据结构与协议。
服务器与客户端采用的公共数据结构有两个,一个是消息包的描述结构SServerMsg,另一个是用户信息的描述结构SUserInfo。
SServerMsg在CMyQQServerDlg.h文件中声明如下:
SUserInfo在CMyQQServerDlg.h文件中声明如下:
服务器与客户端要能够进行良好的通信,要能够互相响应对方的请求,那么服务器与客户端之间必定要有一套完整的协议。这样,服务器端与客户端才能分析对方的请求,并作出相应的动作。
服务器和客户端的协议体现在SServerMsg结构体的m_msgtype变量上,该变量是一个UNIT型变量。变量m_msgtype在服务器和客户端都用来识别消息类型,以作出不同的响应。在本服务器中设计向客户端发送命令和响应客户端请求两个方面,因此必须对这两个方面都加以定义。设置类型的值与含义对应情况如表1、表2:
消息类型标识 |
含义 |
000 |
用户注册请求 |
001 |
用户登陆请求 |
002 |
用户下线请求 |
003 |
下载用户信息请求 |
004 |
连接保持请求 |
005 |
修改用户信息 |
表1:服务器可识别的客户端命令
000 |
服务器关闭消息 |
001 |
连线成功消息 |
002 |
用户下线成功消息 |
003 |
保持连接消息 |
004 |
系统消息 |
005 |
注册成功消息 |
006 |
未注册帐户消息 |
007 |
密码错误消息 |
008 |
登陆成功消息 |
009 |
用户信息消息 |
010 |
用户资料修改成功 |
表2:服务器可发送给客户端的消息