windows_socket编程实战.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:10 大小:423KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

windows_socket编程实战.pdf

windows_socket编程实战.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

windowssosocketcket编程实战Socket中一个比较重要的结构体:hostent,应该用好这个结构体。只允许复制应用程序一个备份,不允许应用程序自己修改,只能由系统修改,在调用任何socket结构之前,都应该copy自己需要的信息。通讯编程详见MSDN中WindowsCEdocument->ApplicationDevelop->CommunicationServices->WindowsSockets章节。1winsock的启动和终止——WSAStartup():使用winsock之前,必须对其进行初始化(VC中项目创建时不包括socket的时候),将其加载,否则,将返回SOCKET_ERROR错误,错误信息为WSANOTINITIALIZED。用WSAStartup函数可加载WinSock库函数声明:intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData);//成功返0,否则返非0参数说明:wVersionRequested:WinSock库的版本号,高位指定副版本,低位指定主版本,可通过MAKEWORD(X,Y)宏指定,X为低位,Y为高位。例:wVersionRequested=MAKEWORD(1,2);lpWSAData:接收WinSock实现细节的LPWSADATA结构。TypedefstructWSAData{WORDwVersion;//设置成准备使用的WinSock版本WORDwHighVersion;//存放的是现有的WinSock库的最高版本,与wVersionRequested参数相同charszDescription[WSADESCRIPTION_LEN+1];charszSystemStatus[WSASYSSTATUS_LEN+1];unsignedshortiMaxSockets;unsignedshortiMaxUdpDg;charFAR*lpVendorInfo;}WSADATA,FAR*LPWSADATA;则一个程序要使用1.2版本的WinSock,程序为:#include"afxsock.h"WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(2,2);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){AfxMessageBox("socket初始化失败!");return;}if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2){WSACleanup();AfxMessageBox("socket创建版本错误!");return;}各windows平台支持的WinSock最新版本平台WinSock版本Win951.1Win982.2NT4.02.2Win20002.2WinCE1.1使用完WinSock释放所使用的资料:intWSACleanup(void);//成功返回0,否则返回SOCKET_ERROR示例代码:WSACleanup();2创建套接字——Socket()和WSASocket()网络通信必须得创建套接字,创建一个套接字,使用下面的函数:SOCKETSocket(intaf,inttype,intprotocol);或者:SOCKETWSASocket(intaf,inttype,intprotocol,LPWSAPROTOCOL_INFOlpProtocolinfo,GROUPg,DWORDdwFlags)注:WSASocket为Socket的WinSock2版本,其原理与方式与原函数类似。调用成功则返回SOCKET类型的套接字句柄,否则返回INVALID_SOCKET错误参数说明:af:协议簇,是常值,在windowsSocket网络程序中,其只能为AF_INET,以下所有内容皆针对于AF_INET协议所言协议簇常值协议簇注释AF_INET网际协议AF_IPXIPX/SPX协议AF_NETBIOSNetBIOS协议AF_APPLETALKAppleTalkAF_TAMATMAF_IRDAInfraredSocketsType:套接字的类型,常值。下列为AF_INET协议簇支持的套接字类型:AF_INETINET协议簇支持的套接字类型套接字类型注释所用的通信协议SOCK_STREAM字节流套接字TCP协议SOCK_DGRAM数据