服务器端WSAAsyncSelect模型编程

WSAAsyncSelect是服务器端的一种I/O模型,它利用Windows消息机制,通过WSAAsyncSelect函数将网络事件注册到窗口。该模型仅提供异步通知,适合轻量级应用。编程时需基于窗口,一般包括创建窗口、设置监听和处理消息等步骤。
摘要由CSDN通过智能技术生成

WSAAsyncSelect是服务器端的六种I/O模型之一,他的主要思想是运用了windows窗口的消息机制,用函数WSAAsyncSelect()将监听端口感兴趣的网络消息注册到窗口,然后在窗口的消息过程中处理,该模型只提供异步通知,并不提供异步数据传送,只适用于系统开销不大的情况。

使用该模型编程,需要基于窗口,以下CreateServerWindow提供了创建窗口的过程。

#include <cassert>
#include <iostream>
#include "ServerWindowCreator.h"
#include "SocketUtil.h"

HWND ServerWindowCreator::CreateServerWindow(HINSTANCE hInstance, LPCTSTR wndClass, WNDPROC wndProc)
{
	assert(hInstance);
	assert(wndClass);
	assert(wndProc);
	if(!hInstance || !wndClass || !wndProc)
		return NULL;

	HWND hWnd = NULL;
	if (MyRegisterClass(hInstance, wndClass, wndProc))//注册窗口类
		hWnd = InitInstance(hInstance, wndClass);//创建窗口

	return hWnd;
}

bool ServerWindowCreator::MyRegisterClass(HINSTANCE hInstance, LPCTSTR wndClass, WNDPROC wndProc)
{
	WNDCLASSEX wcex;

	wcex.cbSize = sizeof(WNDCLASSEX);

	wcex.style			= 0;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值