winsockio模型_计算机软件及应用_it计算机_专业资料

winsockio模型_计算机软件及应用_it计算机_专业资料

ID:32754710

大小:277.05 KB

页数:65页

时间:2019-02-15

winsockio模型_计算机软件及应用_it计算机_专业资料_第1页
winsockio模型_计算机软件及应用_it计算机_专业资料_第2页
winsockio模型_计算机软件及应用_it计算机_专业资料_第3页
winsockio模型_计算机软件及应用_it计算机_专业资料_第4页
winsockio模型_计算机软件及应用_it计算机_专业资料_第5页
资源描述:

《winsockio模型_计算机软件及应用_it计算机_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、【网络编程】之一、初识WinSocketWinsock是Windows下的网络编程接口,它是由Unix下的BSDSocket发展而來,是一个与网络协议无关的编程接口。Winsock在常见的Windows平台上有两个主要的版木,即Winsockl和Winsock2。编写与Winsockl兼容的程序你需要引用头文件WINSOCK.H,如果编写使用Winsock2的程序,则需要引用WINSOCK2.H此外还冇一个MSWSOCK.H头文件,它是专门用来支持在Windows平台上高性能网络程序扩展功能的。使用WINSOCK.H头文件时,同时需

2、要库文件WSOCK32.LIB,使用WINSOCK2.H时,则需要WS2_32.LIB,如果使用MSWSOCK.H中的扩展API,则需要MSWSOCK.LIBo正确引用了头文件,并链接了对应的库文件,你就构建起编写WINSOCK网络程序的环境了。OK,下而我们來看看具体用法:初始化winsocket每个Winsock程序必须使用WSAStartup载入合适的Winsock动态链接库,如果载入失败,WSAStartup将返冋SOCKET_ERROR,这个错误就是WSAINITIALISED,WSAStartup的定义如下:[cpp]v

3、iewplaincopy1.intWSAStartup(2•WORDwVersionRequested^3•LPWSADATAlpWSAData4.);wVersionRequested指定了你想载入的Winsock版木,其高字节指定了次版木号,而低字节指定了主版本号。你可以使用宏MAKEWORD(x,y)来指定版木号,这里x代表主版本,而y代表次版本。lpWSAData是一个指向WSAData结构的指针,WSAStartup会向该结构中填充英载入的Winsock动态链库的信息。lpWSAData是一-个指向WSAData结构的指针

4、,WSAStartup会向该结构屮填充其载入的Winsock动态链库的信息。[cpp]viewplaincopy1.typedefstructWSAData2・{3.WORDwVersion;//wVersion为你将使用的Winsock版木号4.WORDwHighVersion;//wHighVersion为载入的Winsock动态库支持的最高版本,5.注意,它们的高字节代表次版本,低字节代表主版本。6.7.charszDescription[WSADESCRIPTION_LEN+1];charszSystemStatus[WSA

5、SYS_STATUS_LEN+1];//上面两个变暈由特定版本的Winsock设置,实际上没有太大用处。8.unsignedshort讪axSockets;//表示瑕人数屋的并发Sockets,K值依赖于可使用的硬件资源。9.unsignedshort讪axUdpDg;//iMaxUdpDg表示数据报的最人长度10.charFAR*lpVendorlnfo;//>h为Winsock实现『ij保留的制造商信息‘11.这个在Windows平台上并没冇什么用处.12.}WSADATA,*LPWSADATA;当你使用完Winsock接口后,

6、要调用下而的函数对其占用的资源进行释放:intWSACIeanup(void);如果调用该函数失败也没有什么问题,因为操作系统为自动将其释放,对应于每一个WSAStartup调用都应该冇一个WSACIeanup调用.错误处理:Winsock函数调用失败大多会返回SOCKET_ERROR(实际上就是・1),你可以调用WSAGetLastError得到错误的详细信息:[cpp]viewplaincopy

7、1.intWSAGetLastError(void);对该畅数的调用将返回一个错误码,其码值在WINSOCK.H或WINSOCK2.H

8、(根据其版本川己经定义,这些预定义值都以WSAE开头.同时你还可以使用WSASetLastError来自定义错误码值.代码示例:下面是来自msdn的示例:[cpp]viewDlaincopy1.2.3.4.5.6.#include#defineWIN32_LEAN_AND_MEAN#include〈winsock2.h>#include#include7.8.//NeedtolinkwithWs2_32.1ib9.#pragmacomment(lib,,,ws2_32.

9、1ib")10.11.12.int_cdeclmain()13.{14.15•WORDwVersionRequested;16.WSADATAwsaData;17.interr;18•19./*UsetheMAKEWORD(lowby

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。