摘要和软件运行演示见上一篇服务器端的文章。

这里重点讲步骤和不同点。

一、新建MFC对话框程序,拖入2个Edit控件,1个IP控件,3个botton,布局如图。

使用MFC套接字CAsyncSocket进行网络通信—客户端

二、新增一个套接字类CClientSock,重写OnReceive和OnConnect方法,其它方法不是必须的。我为了测试增加了OnClose和OnSend方法。SendMsgToRecvWnd函数是以发消息的方式显示信息到窗口控件中。

使用MFC套接字CAsyncSocket进行网络通信—客户端

三、连接,连接动作由按钮触发,实现如下:这里需要重新Create一个socket,重新Create将使用客户端不同的端口。

如果不重新Create,只是Close,连接将进入TIME_WAIT状态,在WINDOWS里这个状态要持续4min的时间。客户端程序不需要固定端口,因此可以关掉重新Create。而服务器端的处理网上有其它解决方案,这里只简单关掉程序再重开即可。

直接调用Connect方法,会触发OnConnect事件,连接成功则会触发OnSend事件。

使用MFC套接字CAsyncSocket进行网络通信—客户端

四、发送数据,点击发送按钮,直接调用Send方法,这里却不会触发OnSend事件。

使用MFC套接字CAsyncSocket进行网络通信—客户端

五、接收数据,OnReceive接收到数据会自动触发,使用Receive函数接收即可。

使用MFC套接字CAsyncSocket进行网络通信—客户端

客户端程序要比服务器端简单一些,注意连接断开后要重新Create一次,也不需要使用AsyncSelect来指定事件。

 

相关文章: