内容简介:client/server——客户端/服务器模型参数1:数据类型:WORD 转定义:unsigned short
C/S模型
client/server——客户端/服务器模型
网络头文件
#include <winsock2.h> /*函数声明*/
- windows socket 第二版,目前网络库的版本有1.0、1.1、2.0、2.1、2.2
- winsock.h第一版网络库
网络库
#pragma comment(lib,"ws2_32.lib"); /*函数实体*/
- ws2_32.lib:windows socket第二版 32位, 没有ws2_64.lib (32/64位都是用这个)
- winsock.h第一版网络库对应的是wsock32.lib
打开网络库
/*启动网络库,启动了这个库,库里的函数才能被使用*/ int WSAStartup( WORD wVersionRequired, /* 库的版本 */ LPWSADATA lpWSAData /* 返回配置信息 */ );
参数1: 使用的网络库的版本
数据类型:WORD 转定义:unsigned short
WORD wdVersion = MAKEWORD(2,1); //MAKEWORD(主版本,副版本)
define MAKEWORD(a, b)
makeword是将两个byte型合并成一个word型,一个在高8位(b),一个在低8位(a)
参数2: 系统通过这个参数返回给我们一些配置信息
数据类型:WSADATA 转定义是一个结构体
typedef struct WSAData { WORD wVersion; /* 使用的版本 */ WORD wHighVersion; /* 系统能提供的最高版本 */ #ifdef _WIN64 unsigned short iMaxSockets; /* 返回可用的socket数量,2版本后没用了 */ unsigned short iMaxUdpDg; /* UDP数据报信息的大小,2版本后没用了 */ char FAR * lpVendorInfo; /* 供应商特定的信息,2版本后没用了 */ char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; /* 当前库的描述信息 */ #else char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; #endif } WSADATA, FAR * LPWSADATA;
返回值
- 成功——返回 0
- 失败——返回 错误码 :
错误码 | 原因 |
---|---|
WSASYSNOTREADY | 系统配置问题,重启下电脑,检查ws2_32库是否存在,或者是否在环境配置目录下 |
WSASYSNOTREADY | 要使用的版本不支持 |
WSAEPROCLIM | 已达到对Windows套接字实现支持的任务数量的限制 |
Windows Sockets | 实现可能限制同时使用它的应用程序的数量 |
WSAEINPROGRESS | 当前函数运行期间,由于某些原因造成阻塞,会返回在这个错误码,其他操作均禁止 |
WSAEFAULT | 函数参数写错了 |
校验版本
HIBYTE(wsaData.wVersion) :HIBYTE是高位->副版本
//校验版本 if (2 != HIBYTE(wdScokMsg.wVersion) || 2 != LOBYTE(wdScokMsg.wVersion)) { WSACleanup(); //说明版本不对,释放网络库 return 0; }
打开网络库代码
WORD wdVersion = MAKEWORD(2,2); /*网络库版本*/ WSADATA wdSockMsg; /*返回配置信息*/ int nRes = WSAStartup(wdVersion,&wdSockMsg);
流程图
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!