Visual C++网络编程经典案例详解 第8章 网络文件传输 使用Socket传输文件 服务器代码 初始化套接字 自定义消息WM_SOCKT

用户可以看到程序调用函数WSAAsyncSelect()将监听套接字设置为异步模式
当有相关的套接字事件发生时
程序发送自定义消息WM_SOCKT

在工程头文件中定义

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WM_SOCKT WM_USER+1 //定义自定义消息
class CMyDlg : public CDialog
{
	... //省略部分代码
}

用户在头文件中
除了定义自定义消息以外
还需要定义消息响应函数

class CMy2Dlg : public CDialog
{
	public:
		CMy2Dlg(CWnd* pParent = NULL);
		CString ip;
		SOCKET s;	//服务器监听套接字
		SOCKET s1;	//服务器数据收发套接字
		int port;
		HFILE hfile;
	char buff[100];
	CString str;
	char str12[100];
	HWND h;
	protected:
		virtual void DoDataExchange(CDataExchange* pDX);
	public:
		HICON m_hIcon;
	sockaddr_in addr;
	WSADATA data;
	int i;
	int n;
	afx_msg void Onsockt1(WPARAM wParam,LPARAM lParam);
	//套接字消息响应函数
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnClose();
	... //省略部分代码
}

然后 用户还需要在消息映射宏中添加套接字消息的消息映射项

...		//省略部分代码
BEGIN_MESSAGE_MAP(CMy2Dlg, CDialog)
	//{{AFX_MSG_MAP(CMy2Dlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON2,OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3,OnButton3)
	ON_BN_CLICKED(IDC_BUTTON1,OnButton1)
	ON_MESSAGE(WM_SOCKT,Onsockt1) //添加消息映射项
	ON_WM_TIMER()
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
...    //省略部分代码
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值