日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WSAStartup()函数以及DLL的加载

發(fā)布時(shí)間:2025/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WSAStartup()函数以及DLL的加载 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本節(jié)講解 Windows 下 DLL 的加載,學(xué)習(xí)?Linux?Socket 的讀者可以跳過。

WinSock(Windows Socket)編程依賴于系統(tǒng)提供的動態(tài)鏈接庫(DLL),有兩個(gè)版本:

  • 較早的DLL是?wsock32.dll,大小為 28KB,對應(yīng)的頭文件為 winsock1.h;
  • 最新的DLL是?ws2_32.dll,大小為 69KB,對應(yīng)的頭文件為?winsock2.h。


幾乎所有的 Windows 操作系統(tǒng)都已經(jīng)支持 ws2_32.dll,包括個(gè)人操作系統(tǒng) Windows 95 OSR2、Windows 98、Windows Me、Windows 2000、XP、Vista、Win7、Win8、Win10 以及服務(wù)器操作系統(tǒng) Windows NT 4.0 SP4、Windows Server 2003、Windows Server 2008 等,所以你可以毫不猶豫地使用最新的 ws2_32.dll。

使用 DLL 之前必須把 DLL 加載到當(dāng)前程序,你可以在編譯時(shí)加載,也可以在程序運(yùn)行時(shí)加載,我們已在《動態(tài)鏈接庫DLL的加載:隱式加載(載入時(shí)加載)和顯式加載(運(yùn)行時(shí)加載)》進(jìn)行了講解。

這里使用#pragma命令,在編譯時(shí)加載:

#pragma comment (lib, "ws2_32.lib")

WSAStartup() 函數(shù)

使用 DLL 之前,還需要調(diào)用?WSAStartup() 函數(shù)進(jìn)行初始化,以指明 WinSock 規(guī)范的版本,它的原型為:

int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

wVersionRequested 為 WinSock 規(guī)范的版本號,低字節(jié)為主版本號,高字節(jié)為副版本號(修正版本號);lpWSAData 為指向 WSAData 結(jié)構(gòu)體的指針。

關(guān)于 WinSock 規(guī)范

WinSock 規(guī)范的最新版本號為 2.2,較早的有 2.1、2.0、1.1、1.0,ws2_32.dll 支持所有的規(guī)范,而 wsock32.dll 僅支持 1.0 和 1.1。

wsock32.dll 已經(jīng)能夠很好的支持 TCP/IP 通信程序的開發(fā),ws2_32.dll 主要增加了對其他協(xié)議的支持,不過建議使用最新的?2.2?版本。

wVersionRequested 參數(shù)用來指明我們希望使用的版本號,它的類型為 WORD,等價(jià)于?unsigned short,是一個(gè)整數(shù),所以需要用 MAKEWORD() 宏函數(shù)對版本號進(jìn)行轉(zhuǎn)換。例如:

MAKEWORD(1, 2); //主版本號為1,副版本號為2,返回 0x0201 MAKEWORD(2, 2); //主版本號為2,副版本號為2,返回 0x0202

關(guān)于 WSAData 結(jié)構(gòu)體

WSAStartup() 函數(shù)執(zhí)行成功后,會將與 ws2_32.dll 有關(guān)的信息寫入 WSAData 結(jié)構(gòu)體變量。WSAData 的定義如下:

  • typedef struct WSAData {
  • WORD wVersion; //ws2_32.dll 建議我們使用的版本號
  • WORD wHighVersion; //ws2_32.dll 支持的最高版本號
  • //一個(gè)以 null 結(jié)尾的字符串,用來說明 ws2_32.dll 的實(shí)現(xiàn)以及廠商信息
  • char szDescription[WSADESCRIPTION_LEN+1];
  • //一個(gè)以 null 結(jié)尾的字符串,用來說明 ws2_32.dll 的狀態(tài)以及配置信息
  • char szSystemStatus[WSASYS_STATUS_LEN+1];
  • unsigned short iMaxSockets; //2.0以后不再使用
  • unsigned short iMaxUdpDg; //2.0以后不再使用
  • char FAR *lpVendorInfo; //2.0以后不再使用
  • } WSADATA, *LPWSADATA;
  • 最后3個(gè)成員已棄之不用,szDescription 和?szSystemStatus 包含的信息基本沒有實(shí)用價(jià)值,讀者只需關(guān)注前兩個(gè)成員即可。請看下面的代碼:

  • #include <stdio.h>
  • #include <winsock2.h>
  • #pragma comment (lib, "ws2_32.lib")
  • ?
  • int main(){
  • WSADATA wsaData;
  • WSAStartup( MAKEWORD(2, 2), &wsaData);
  • ?
  • printf("wVersion: %d.%d\n", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
  • printf("wHighVersion: %d.%d\n", LOBYTE(wsaData.wHighVersion), HIBYTE(wsaData.wHighVersion));
  • printf("szDescription: %s\n", wsaData.szDescription);
  • printf("szSystemStatus: %s\n", wsaData.szSystemStatus);
  • ?
  • return 0;
  • }
  • 運(yùn)行結(jié)果:
    wVersion: 2.2
    wHighVersion: 2.2
    szDescription: WinSock 2.0
    szSystemStatus: Running

    ws2_32.dll 支持的最高版本為 2.2,建議使用的版本也是 2.2。

    綜上所述:WinSock 編程的第一步就是加載 ws2_32.dll,然后調(diào)用 WSAStartup() 函數(shù)進(jìn)行初始化,并指明要使用的版本號。

    總結(jié)

    以上是生活随笔為你收集整理的WSAStartup()函数以及DLL的加载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 成人黄色激情视频 | 精品少妇久久久 | 天堂中文在线资源 | 91操操操| 天天干,天天操,天天射 | 欧美性日韩 | 99精品久久久 | 男女无遮挡xx00动态图120秒 | 黄色av网站网址 | 92av视频 | 国内精品久久久久久久 | 谁有av网址| 国产91精品一区二区绿帽 | av影片在线播放 | 尤物网址在线观看 | 久久久精品久久久久久 | 欧美性天堂 | 搞黄网站在线观看 | 国产精品无码AV | 天天爱天天草 | 一区二区日韩在线观看 | 一吻定情2013日剧 | 日韩精品一区在线 | 午夜免费福利 | 欧美激情h| 屁股夹体温计调教play | 足交在线观看 | 日本黄色aaa| 久久国产二区 | jizz成熟丰满老女人 | 97人人射 | 四川丰满少妇被弄到高潮 | 97超级碰碰人妻中文字幕 | 亚洲天堂av免费在线观看 | 国产中文字字幕乱码无限 | 69av一区二区三区 | 国产免费一区 | 亚洲国产日韩一区无码精品久久久 | 性少妇videosexfre| 老熟女重囗味hdxx69 | 午夜影院在线 | 麻豆网站在线观看 | 成人免费观看网站 | 久久国产乱 | 成人欧美在线视频 | 亚洲3p | 日本激情网 | 秋霞精品一区二区三区 | 亚洲综合伊人 | 麻豆传谋在线观看免费mv | 公车乳尖揉捏酥软呻吟 | 黄色1级视频 | 波多野结衣中文字幕一区 | 日日夜夜拍 | 综合久久影院 | 久久大陆 | 亚洲精品一区二区三区精华液 | 日本综合在线 | 神秘马戏团在线观看免费高清中文 | 婷婷激情电影 | 亚洲免费自拍 | 麻豆成人久久精品一区二区三区 | 日韩欧美亚洲一区 | 天天免费看av | 黑人巨大精品 | 国产欧美日韩一区 | 久久久久久久久久亚洲 | 91在线视频| 少妇性l交大片7724com | 综合色在线观看 | 色婷在线 | 丁香花完整视频在线观看 | 日本久久久久久久久久久 | 大尺度做爰床戏呻吟舒畅 | 日韩一区二区免费播放 | 欧美激情18 | 国产精品刘玥久久一区 | 亚洲一区视频在线 | 色婷婷久久综合中文久久蜜桃av | 欧美三级一区二区三区 | 日本在线视频免费 | 国产又黄又粗又爽 | 亚洲免费黄色片 | 国产一道本 | 亚洲天堂中文字幕在线观看 | 国产精品不卡视频 | 91免费网站| 日本jizzjizz | 被黑人啪到哭的番号922在线 | 美女脱得一干二净 | 99在线成人精品视频 | 中文在线a√在线8 | 久久久久久久成人 | 欧美激情一区二区视频 | 丰满岳乱妇一区二区三区 | 男生把女生困困的视频 | 在线一区二区三区四区 | 日韩成人av网址 | 91av视频在线观看 |