遍匈 / socket園殻 /

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() 痕方序佩兜兵晒?旺峺苧勣聞喘議井云催。
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /