winsock库

加载Winsock库函数 : WSAStartup

1 int WSAStartup(
2                WORD wVersionRequested,//指定想要加载的winsock库
3                LPWSADATA lpWSAData//指向 WSADATA的指针,用来返回DLL库的详细信息
4 );

WSADat头结构

 1 typedef struct WSAData
 2 {
 3     WORD wVersion;    //库文件建议应用程序使用的版本
 4     WORD wHighVersion;    //库文件支持的最高版本
 5     char szDescription[WSADESCRIPTION_LEN+1];    //库描述字符串
 6     char szSystemStatus[WSASYS_STATUS_LEN+1];    //系统状态字符串
 7     unsigned short iMaxSockets;    //同时支持的最大套接字的数量
 8     unsigned short iMaxUdpDg;    //2.0版中已废弃的参数
 9     char FAR* lpVendorInfo;    //已废弃的参数
10 }WSADATA,FAR* LOWSADATA;

每一个WSAStart调用必须对应一个队WSAClean的调用,这个函数用来释放winsock库

int WSACleanup(void);

如果想使用winsock库,应该包含对应的库文件

1 #pragma comment(lib,"WS2_32")

以后封装的经常用到的CInitSock类

 1 #include <winsock2.h>
 2 #pragma comment(lib,"WS2_32")
 3 class CInitSock
 4 {
 5 public:
 6     CInitSock(BYTE minorVer=2,BYTE majorVer=2)
 7     {
 8         WSADATA wsaData;
 9         WORD sockVersion = MAKEWORD(minorVer,majorVer);
10         if(::WSAStartup(sockVersion,&wsaData)!=0)
11         {
12             exit(0);
13         }
14     }
15     ~CInitSock()
16     {
17         ::WSACleanup();
18     }
19 };

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Elasticsearch聚合 之 Histogram 直方图聚合

    Elasticsearch支持最直方图聚合,它在数字字段自动创建桶,并会扫描全部文档,把文档放入相应的桶中。这个数字字段既可以是文档中的某个字段,也可以通过脚...

    用户1154259
  • JSP与JavaBeans

      JavaBeans简介   JavaBeans是一种符合一定标准的普通java类,需要满足下面几点:   1 类是public   2 属性私有   3 空...

    用户1154259
  • AngularJS API之equal比较对象

    使用情况 1 首先,所有满足 a === 3 这种的对象,在angular.equals(a,b)中都会返回真 2 所有对象的类型,以及属性值都相同的,也会返回...

    用户1154259
  • (centos7)安装和卸载软件

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    suveng
  • 数据类型转换

    老七Linux
  • 如何在CVM上同步自建数据库的数据?

    Transporter是一种用于在不同数据存储之间移动数据的开源工具。开发人员经常为诸如跨数据库移动数据,将数据从文件移动到数据库或反之亦然等任务编写一次性脚本...

    爆栈工程师
  • 前端特效开发 | JS实现聚光灯看图效果

    HTML5学堂(码匠):昏暗的场景下,查看任何的图片、效果都会给人不适的感觉,所以人们往往喜欢在明亮的场景中来体验世界的美好。 对于前端开发来说,想要让用户能在...

    HTML5学堂
  • WorkManager 在 Kotlin 中的实践

    WorkManager 是一个 Android Jetpack 扩展库,它可以让您轻松规划那些可延后、异步但又需要可靠运行的任务。对于绝大部分后台执行任务来说,...

    Android 开发者
  • 一张图弄清Activity的启动过程

    它是应用程序在AMS中的Binder对象,AMS利用它可以和ActivityThread通信,四大组件相关回调都是通过它来告诉ActivityThread的。

    Android技术干货分享
  • 学习python:练习5.简单红包程序

    快过年了,最近不少群里都发红包,晚上突然想用这个红包做个练习,简单实现了一下,效果不错哦

    py3study

扫码关注云+社区

领取腾讯云代金券