socket 编程用法---- 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要
由于C++语言对底层操作的优越性,许多文章都曾经介绍过用VC++进行Socket编程的方法
但由于都是直接利用动态连接库wsock32
dll 进行操作,实现比较繁琐
其实,VC++的MFC 类库中提供了CAsyncSocket 这样一个套接字类,用他来实现Socket 编程,是非常方便的
---- 本文将用一个Echo 例程来介绍CAsyncSocket 类的用法
---- 一. 客户端 ---- 1. 创建一个Dialog Based 项目:CSockClient
---- 2. 设计对话框 ---- 去掉Ok 和Cancle 两个按钮,增加ID_Connect(连接)、ID_Send(发送)、ID_Exit(关闭)按钮,增加ListBox控件 IDC_LISTMSG 和Edit 控件 IDC_EDITMSG,并按下表在ClassWizard 中为 CCSockClientDlg 类添加变量
Control ID Type Member IDC_EDITMSG CEdit m_MSG IDC_LISTMSG ClistBox m_MSGS ---- 3. CAsyncSocket 类用DoCallBack 函数处理 MFC 消息,当一个网络事件发生时,DoCallBack 函数按网络事件类型:FD_READ、FD_WRITE、FD_ACCEPT、FD_CONNECT分别调用OnReceive、OnSend、OnAccept、OnConnect 函数
由于MFC 把这些事件处理函数定义为虚函数,所以要生成一个新的C++类,以重载这些函数,做法如下: ---- 以 Public 方式继承 CAsyncSocket 类,生成新类MySock; ---- 为 MySoc