MFC+WinSock程序的一般步骤

1.在MFC创建向导中选择支持WinSock

2.不用调用WSAStatup函数

3.服务器和客户端的程序书写和控制台基本相同,以客户端为例

3.1 在CServerDialog.h中声明变量sockaddr_in server_addr, client_addr; socket listen, connect;

3.2 在CServerDialog.cpp中CDialog::OnInitDialog里初始化各变量,并调用bind和listen

3.3 确定WinSock是异步调用模式,调用WSAAsynSelect,四个参数:待关联套接字对象,待关联窗口对象,待关联自定义消息如WM_SOCKET,消息类型

其中消息类型有多种,如FD_ACCEPT, FD_READ等。消息类型将作为参数lParam传递给自定义的消息处理函数OnSocket

3.4 在CServerDialog.h中#define WM_SOCKET WM_USER+[offset, e.g. 1000] 

3.5 在CServerDialog.h中添加WM_SOCKET的处理函数的声明,例如 LRESULT OnSocket(WPARAM wParam,LPARAM lParam)

3.6 在CServerDialog.h添加WM_SOCKET与OnSocket的映射

3.7.在CServerDialog.cpp中编写OnSocket函数的具体实现,根据lParam的类型编写相应的处理逻辑,对于多种消息类型,使用switch

3.8 对于发送消息,在按键消息处理函数中,使用连接套接字,本例中也就是

       connect = accept(listen,...);

       send(connect,...);

4.不需要显式Close套接字对象

           

             

     

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
环境:Windows XP SP 3、 VC++ 6.0、 Windows Server 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0 IDE打开.dws文件 2、点击“!”按钮运行程序 3、如果一切正常会出现一个对话框,然后选择下拉框中的“服务端”启动服务器进程--接着点击“监听”按钮 4、然后再点击“!”按钮运行客户端进程 5、如果一切正常,那么选择下拉框中的“客户端”启动客户端进程--接着点击“连接”按钮,让客户端连接到socket服务器 6、在客户端的“消息”栏中输入信息,然后点击“发送”按钮 7、点击服务器端进程,应该可以看见客户端发送过来的消息,然后可以在“消息”栏中输入响应信息,然后点击“发送”按钮,此会在客户端进程中看服务器端进程响应的信息 该示例是实现了一个客户端对象对应一个服务端对象的socket的网络编程--最简单的VC++的网络编程示例。该示使用主要是自定义一个类--它继承MFC库中CAsyncSocket类,然后重写OnAccept, OnSend, OnReceive和OnClose方法来实现一对一的VC++的socket网络编程。注意:自定义类关联应用向导生成的对话框类,需要在头文件中书写语句“class CHelloSocketDlg;”,并且在.cpp文件中写入语句“#include "HelloSocketDlg.h";”,否则编译不会通过! 本示例使用Dialog模式的UI是为方便说明socket编程,在对话框类的OnInitDialog方法有初始化的成员变量的注释说明,在自定义类中的注释非常详细。本人觉得MFC使用异步通信类CAsyncSocket实现Java中的ServerSocket类和Socket类的编程效果,是非常牛的!(虽然本人认为它还封装得不够OO--因为它封装得让使用者觉得“很傻很天真”)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值