.
基于MFC网络通信设计
王忠亮 2017-1-5
1. 软件工具
Visual Studio 2013
2. 系统平台
Windows 7 64bit
3. 设计目标
设计一个基于对话框的应用软件,使两台PC机之间实现网络通信,一台为客户机,另一台为服务器。
4. 设计原理
在客户-服务器方式下,实现网络程序的socket通信。
客户和服务器是指通信中所涉及的两个应用进程,客户-服务器方式所描述的是进程之间服务和被服务的关系。一台PC机运行客户程序,而另一台PC机运行服务器程序。
该设计只实现一个最简单的socket通信:单方向通信。只有客户向服务器发送消息,并且也只由客户主动断开连接。
客户socket和服务器socket之间的关系如图:
1 / 36'.
.
PC机1(运行客户程序)PC机2(运行服务器程序)客户socket(1)连接请求监听socket(2)创建服务socket(3)发送消息服务socket 服务器程序中包含两个socket:监听socket和服务socket。监听socket响应客户socket的连接请求,一旦收到连接请求,则创建服务socket。服务socket负责接收客户socket发送过来的消息,并随时响应客户socket的断开连接请求。 进一步细化上面过程,可得到Socket间通信流程图:
开始开始(4)主动断开连接创建客户socket创建监听socket等待发起连接请求进入监听状态否连接请求否发起连接请求收到连接请求是连接成功创建服务socket是客户socket处于连接状态主动断开连接发送消息等待客户发来消息是否收到断开连接请求
2 / 36'.
.
5. 设计步骤
5.1. 创建客户端工程
打开Visual Studio 2013工具,建立一个基于对话框的MFC项目,项目名称NetcommClient。
3 / 36'.
.
4 / 36'.
.
5.2. 创建客户socket类
选择PROJECT->Add Class...,如图所示:
5 / 36'.