VC++利用socket开发udp数据接收程序的步骤(异步方式)

对话框MFC程序,采用异步套接字方式,执行效率高,如项目名称为GPRS_P2P,具体步骤如下:

1. 在CGPRS_P2PApp源文件种加载套接字,如下:

BOOL CGPRS_P2PApp::InitInstance()
{

	WORD wVersionRequested;
	WSADATA wsaData;
	int err;
	
	wVersionRequested = MAKEWORD( 2, 2 );
	
	err = WSAStartup( wVersionRequested, &wsaData );
	if ( err != 0 ) {
		
		return FALSE;
	}
	
	
	if ( LOBYTE( wsaData.wVersion ) != 2 ||
        HIBYTE( wsaData.wVersion ) != 2 ) {
		
		WSACleanup( );
		return FALSE; 
	}

2. 在StdAfx.h中,添加包含:

#include

注意不要加在 #if     和 #endif之间,不然会出错的。

3.在工具栏,project下拉框里,选择Setting,选择link那一栏,在“object/library modules”,

添加“ws2_32.lib ”

4.在CGPRS_P2Dlg类中,新建套接字

5.为CGPRS_P2Dlg类添加一个BOOL类型的套接字初始化函数,设置为public类型;

6.增加一个自定义消息类型,

//add 添加网络自定义消息
#define B_SOCK WM_USER+8

CGPRS_P2Dlg源文件添加消息响应

在CGPRS_P2Dlg头文件声明下响应函数

7.在CGPRS_P2PApp类中添加解析函数,用于关闭套接字

CGPRS_P2PApp::~CGPRS_P2PApp()
{
	// TODO: add construction code here,
	WSACleanup();
}

8.在 CGPRS_P2Dlg类中,添加解析函数,用于释放套接字

CGPRS_P2PDlg::~CGPRS_P2PDlg()
{
	if(b_socket)
		closesocket(b_socket);
}

9.剩下的就是发送和接收过程的实现了。



你可能感兴趣的:(visual,C++)