WSAStartup()痕方參式DLL議紗墮
<貧匯准
和匯准>
云准讐盾 Windows 和 DLL 議紗墮?僥楼 Linux Socket 議響宀辛參柳狛。WinSock?Windows Socket?園殻卆正噐狼由戻工議強蓑全俊垂(DLL)?嗤曾倖井云?
- 熟壼議DLL頁 wsock32.dll?寄弌葎 28KB?斤哘議遊猟周葎 winsock1.h?
- 恷仟議DLL頁 ws2_32.dll?寄弌葎 69KB?斤哘議遊猟周葎 winsock2.h。
叱窄侭嗤議 Windows 荷恬狼由脅厮将屶隔 ws2_32.dll?淫凄倖繁荷恬狼由 Windows 95 OSR2、Windows 98、Windows Me、Windows 2000、XP、Vista、Win7、Win8、Win10 參式捲暦匂荷恬狼由 Windows NT 4.0 SP4、Windows Server 2003、Windows Server 2008 吉?侭參低辛參坐音嗅團仇聞喘恷仟議 ws2_32.dll。
聞喘DLL岻念駅倬委DLL紗墮欺輝念殻會?低辛參壓園咎扮紗墮?匆辛參壓殻會塰佩扮紗墮?ゞC囂冱互雫縮殻〃嶄讐欺阻宸曾嶽紗墮圭塀?萩値似?強蓑全俊垂DLL議紗墮?咨塀紗墮(墮秘扮紗墮)才?塋充嘖?(塰佩扮紗墮)。
宸戦聞喘
#pragma凋綜?壓園咎扮紗墮?
#pragma comment (lib, "ws2_32.lib")
WSAStartup() 痕方
聞喘DLL岻念?珊俶勣距喘 WSAStartup() 痕方序佩兜兵晒?參峺苧 WinSock 号袈議井云?万議圻侏葎?int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);wVersionRequested 葎 WinSock 号袈議井云催?詰忖准葎麼井云催?互忖准葎険井云催?俐屎井云催??lpWSAData 葎峺? WSAData 潤更悶議峺寞。
購噐 WinSock 号袈
WinSock 号袈議恷仟井云催葎 2.2?熟壼議嗤 2.1、2.0、1.1、1.0?ws2_32.dll 屶隔侭嗤議号袈?遇 wsock32.dll 叙屶隔 1.0 才 1.1。wsock32.dll 厮将嬬校載挫議屶隔 TCP/IP 宥佚殻會議蝕窟?ws2_32.dll 麼勣奐紗阻斤凪麿亅咏議屶隔?音狛秀咏聞喘恷仟議 2.2 井云。
wVersionRequested 歌方喘栖峺苧厘断錬李聞喘議井云催?万議窃侏葎 WORD?吉勺噐 unsigned short?頁匯倖屁方?侭參俶勣喘 MAKEWORD() 崎痕方斤井云催序佩廬算。箭泌?
MAKEWORD(1, 2); //麼井云催葎1?険井云催葎2?卦指 0x0201 MAKEWORD(2, 2); //麼井云催葎2?険井云催葎2?卦指 0x0202
購噐 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;
恷朔3倖撹埀厮虹岻音喘?szDescription 才 szSystemStatus 淫根議佚連児云短嗤糞喘勺峙?響宀峪俶購廣念曾倖撹埀軸辛。萩心和中議旗鷹?
#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;
}
塰佩潤惚?wVersion: 2.2
wHighVersion: 2.2
szDescription: WinSock 2.0
szSystemStatus: Running
ws2_32.dll 屶隔議恷互井云葎 2.2?秀咏聞喘議井云匆頁 2.2。
忝貧侭峰?WinSock 園殻議及匯化祥頁紗墮 ws2_32.dll?隼朔距喘 WSAStartup() 痕方序佩兜兵晒?旺峺苧勣聞喘議井云催。
<貧匯准
和匯准>