1 / 28
文档名称:

高级网络编程.ppt

格式:ppt   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

高级网络编程.ppt

上传人:endfrs 2016/7/1 文件大小:0 KB

下载得到文件列表

高级网络编程.ppt

文档介绍

文档介绍:高级网络编程南昌大学何俊 1前言?本章主要介绍 WinSock, CAsyncSocket, CSocket 类, . MFC 网络编程? :基于 MFC 学****WinSock 的应用. ? : 网络聊天实例? :? #1 既可以作为服务器,也可以作客户机. ? #2 若作为服务器启动,则本机作为服务器. 若作为客户机启动,则输入服务器的 IP地址与端口号.? #3 采用 TCP 协议,使用非阻塞模式. 3 ? : ? 1)系统初始化.? 2)添加”做服务器”按钮 IDC_BTN_SER 的消息响应函数 OnBtnSer. ?创建一个监听 Socket ? bind ? listen ? 3)添加”做客户机”按钮 IDC_BTN_CLI 的消息响应函数 OnBtnCli. ?创建一个 Socket ? connect 4 ? 4)添加”退出”按钮 IDC_BTN_TUI 的消息响应函数 OnBtnTui. ?释放连接(服务器端有多个连接),关闭套接字,WSACleanUp ? 5)添加输入文本框 IDC_EDIT_SR 中”回车”的消息处理函数. ?若是客户端:调用 send ?若是服务器:发到所有客户端? 6)网络事件消息?在非阻塞通信方式中,: 网络事件含义服务器端客户端 EPT 连接请求到来连接并记录 FD_CONNECT 连接完成显示连接成功 FD_READ 收到数据接收数据并处理接收数据并处理 FD_CLOSE 收到 Socket 关闭消息关闭对应 Socket 关闭 Socket 5 ? MFC 创建一个对话框程序 hat. ?在 中添加必要的头文件?#include <> ? #include <> //CIPAddressCtrl 所须?#include "" // 使用 winsock32 所必须包含的文件?#ment(lib, "wsock32") ? ,如图,并修改属性; ?端口输入框:勾选 Number, 范围 1024-4096, 默认为 1024. ?显示框:勾选 Multiline,Vertical scroll,Auto Vscroll,Read Only, 去掉 Auto Hscroll. ?文本输入框:勾选 Multiline,Want return 6 ? ClassWizard 生成成员变量,作为控件输入. ?为 IDC_EDIT_XS 显示文本框生成 CString 类型的成员变量 m_ShowString; ?为 IDC_EDIT_SR 输入文本框生成 CString 类型的成员变量 m_InputString; ?为 IDC_EDIT_DK 端口文本框生成 UINT 类型的变量 m_Port, 范围为 1024-4096; ?为 IDC_IPADDRESS1 文本框生成 CIPAddressCtrl 类型的成员变量 m_ServerIP; ?补充:在构造函数中将变量 m_Port 初值改为 1024. ? 7 ? 4. 添加命令响应函数?添加”做服务器”按钮 IDC_BTN_SER 的消息响应函数 OnBtnSer. ?添加”做客户机”按钮 IDC_BTN_CLI 的消息响应函数 OnBtnCli. ?添加”退出”按钮 IDC_BTN_TUI 的消息响应函数 OnBtnTui. ?添加输入文本框 IDC_EDIT_SR 中”输入事件”消息处理函数,并更新消息映射:? afx_msg void OnInput();// 在头文件中添加? ON_EN_UPDATE(IDC_EDIT_SR,OnInput);// 在源文件中添加,表示控件有更新时就调用 OnInput. ? void hatDlg::OnInput() ? { ? MessageBox("hello!"); ? } ?? 8 ? 5. 定义客户端和服务器端的网络消息,手工添加消息映射,添加消息响应函数? 1)在头文件中定义客户端和服务器端的网络消息?#define SERVER_MESSAGE WM_USER+100 ? #define CLIENT_MESSAGE WM_USER+101 ? 2) 在头文件中添加消息映射?