18.4.3 使用WinSock类设计网络聊天室
在18.3.3节中介绍了如何使用套接字函数设计网络聊天室,下面将使用WinSock类来设计一个网络聊天程序。程序依然由两个实例组成,即服务器端和客户端。服务器端接受连接并转发信息,客户端负责连接服务器,并发送信息。
服务器端程序设计步骤如下。
ch1808实例位置:mr\18\sl\08
(1)创建一个基于对话框的工程,设计对话框资源如图18.16所示。
图18.16 服务器端资源设计窗口
(2)从CSocket类派生一个新类CClientSocket,在头文件中引用对话框的头文件和afxsock.h头文件,并对对话框类进行前导声明。
(3)处理“监听”按钮的单击事件,开始监听客户端。
void CServerDlg::OnOK() |
(4)在对话框中添加AcceptConnect方法,用于接受客户端的连接。
void CServerDlg::AcceptConnect() |
(5)在对话框中添加ReceiveData方法,用于接收客户端传来的数据。
void CServerDlg::ReceiveData(CClientSocket* socket) |
客户端程序设计步骤如下。
ch1809实例位置:mr\18\sl\09
(1)创建一个基于对话框的工程,设置对话框资源如图18.17所示。
(2)在应用程序的InitInstance方法中初始化套接字。
//初始化套接字 |
(3)从CSocket类中派生一个子类CMysocket。在头文件中引用Afxsock.h头文件,目的是使用CSocket类;引用主对话框的头文件,并对主对话框进行前导声明,因为在CMysocket类中需要定义主对话框类指针。
(4)处理“发送”按钮的单击事件,发送数据到服务器。
图18.17 客户端窗口设计
void CClientDlg::OnButtonsend() |
(5)在主对话框中定义一个CMysocket对象指针。添加ReceiveData成员方法,用于接收服务器传来的数据。
void CClientDlg::ReceiveData() |
(6)处理“连接”按钮的单击事件,连接服务器。
void CClientDlg::OnButtonjoin() |
运行程序,效果如图18.18、图18.19、图18.20所示。
图18.18 服务器端窗口
图18.19 客户端窗口1
图18.20 客户端窗口2
| 回书目 上一节 下一节 |
|
· 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. |
· 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. |
|
||||
| · 2008年上半年全国软考.. · 微软出价446亿美元收购.. · 华为员工自杀频频拷问.. · 三层交换技术专题 · ARP攻击防范与解决方案 · 隐私保护技术探讨 · 反垃圾邮件技术应用 · 龙芯要做中国的“奔腾” |
· Windows Server 2008专.. · AMD Phenom三核处理器.. · 路由器设置与口令恢复 · 微软Forefront企业安全.. · LAMP技术精解 · 企业数据恢复指南 · 技术人求职简历完备手册 · Apache技术专题 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 中间件应用技术专题 · 三层交换技术专题 |
· SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · 企业数据恢复指南 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 |
· Apache技术专题 · RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 |
|||