美文网首页
再学WSAStartup()函数

再学WSAStartup()函数

作者: 大龙10 | 来源:发表于2023-05-15 11:27 被阅读0次

一、WSAStartup()函数以及DLL的加载

yuw2017的博客https://blog.51cto.com/u_12009752/1843745
  • WinSock(Windows Socket)编程依附于零碎供给的静态链接库(DLL),有两个版本:
    较早的DLL是 wsock32.dll,明细为 28KB,对应的头文件为 winsock1.h;
    最新的DLL是 ws2_32.dll,明细为 69KB,对应的头文件为 winsock2.h。

  • 几乎一切的 Windows 操作 都曾经支撑 ws2_32.dll,所以你可以毫不犹疑地运用最新的 ws2_32.dll。

二、WSAStartup() 函数

int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

  • wVersionRequested 为 WinSock 标准的版本号,低字节为主版本号,高字节为副版本号(修改版本号);

  • lpWSAData 为指向 WSAData 构造体的指针。

  • WSAStartup() 函数返回成功后,会将与 ws2_32.dll 有关的信息写入 WSAData 构造体变量。WSAData 的结构如下:

typedef struct WSAData 
{ WORD wVersion;   //ws2_32.dll 建议我们运用的版本号 
  WORD wHighVersion; //ws2_32.dll 支撑的最高版本号 
//一个以 null 开头的字符串,用来阐明 ws2_32.dll 的完成以及厂商信息 
char szDescription[WSADESCRIPTION_LEN+1]; //一个以 null 开头的字符串,用来阐明 ws2_32.dll 的形态以及设置装备摆设信息 
char szSystemStatus[WSASYS_STATUS_LEN+1]; 
unsigned short iMaxSockets; //2.0今后不再运用 
unsigned short iMaxUdpDg; //2.0今后不再运用 
char FAR *lpVendorInfo; //2.0今后不再运用
 } WSADATA, *LPWSADATA;

三、inet_ntoa函数

  • inet_ntoa函数,该函数是将十进制网络字节序转换为点分十进制IP格式,如果不用该函数,那么将无法正确打印出IP。

函数原型: char FAR* PASCAL FAR inet_ntoa( struct in_addr in);
MSDN上本函数的原型描述为:unsigned long inet_addr( __in const char *cp);

  • in:一个表示Internet主机地址的结构。

四、错误代码

  • WSASYSNOTREADY
    代码数值为10091,指出网络通信依赖的网络子系统还没有准备好。
  • WSAVERNOTSUPPORTED
    代码数值为10092,表示所需的Windows Sockets API的版本未由特定的Windows Sockets实现提供。
  • WSAEINVAL
    代码数值为10022,说明应用程序指出的Windows Sockets版本不被该DLL支持。
  • WSAEINPROGRESS
    代码数值为10036,说明一个阻塞的Winsock调用正在进行中。
  • WSAEPROCLIM
    代码数值为10067,说明已经达到了Windows Sockets实现所支持的任务数量的极限。
  • WSAEFAULT
    代码数值为10014,说明lpWSADATA参数是一个无效的指针。

相关文章

  • C++网络编程

    网络编程的步骤 WSAStartup socket bind listen accept send/recv cl...

  • 烧脑必备品之函数基础篇

    函数与公式 今天学习函数的基础知识,先认识函数,再学习函数,之后再了解并运用函数 今天仅仅只是学习了函数的基础知识...

  • 特训营第17天

    今天学习统计函数 函数学了好几天,忽难忽易,感觉平时用过的函数现在再学习一下,就忽然豁然开朗了,比如sum,sum...

  • 21-11 函数 再学习

    一、相对与绝对引用 1.一句话概括:在引用的单元格地址中添加$即为绝对引用,反之为相对引用。 行前添加$,复制公式...

  • 再学JS--函数参数传递类型

    JavaScript的函数参数传递分为按值传递、按引用传递以及按共享传递。 按值传递 什么是按值传递? 把函数外部...

  • 人生八学会

    先学会从众,再学会与众不同; 先学会复杂,再学会简单; 先学会爱自己,再学会爱别人; 先学会爱亲人,再学会爱朋友;...

  • swift再学习之 - swift3.0 函数

    在OC语言的基础之上,swift中对函数的功能进行了扩充。如下对函数的基本功能进行列举: //可变参数--类似于参...

  • JavaScript再学习笔记之函数高级(1)

    原型与原型链 原型(prototype) 函数的prototype属性 每个函数都有一个prototype属性,它...

  • 心中要有快乐,才能发现美好

    先学会从众,再学会与众不同;先学会爱自己,再学会爱别人;先学会爱亲人,再学会爱朋友;先学会怎样生活,再学会体验生活...

  • 再学 this

    执行上下文主要分为三种:全局执行上下文、函数执行上下文、eval执行上下文。而this和执行上下文是相互绑定的,所...

网友评论

      本文标题:再学WSAStartup()函数

      本文链接:https://www.haomeiwen.com/subject/okumsdtx.html