Winsock 姒傝堪
Socket 鍑芥暟鏄?/span> Windows 鍦ㄤ紶杈撳眰涓簲鐢ㄧ殑緙栫▼鎺ュ彛銆傛墍浠ヤ嬌鐢?/span> WinSock 涓昏鏄紑鍙戝熀浜?/span> TCP 鎴?/span> UDP 鐨勫簲鐢ㄧ▼搴忋?/span>
涓銆?/span> 鍦?/span> LAN 涓槸鐨勫鍧鏂瑰紡
LAN 涓富瑕佷嬌鐢ㄥ箍鎾氫俊銆傛墍浠ラ氫俊鏃剁殑鍏抽敭闂鏄綋绔炰簤瀛樺湪鏃跺浣曞喅瀹氳皝浣跨敤閫氶亾銆?/span> MAC 瀛愬眰灝辨槸鐢ㄦ潵瑙e喅姝ら棶棰樼殑錛屽畠鏄摼璺眰鐨勫瓙灞傘?/span> MAC 鏄帶鍒?/span> LAN 涓殑騫挎挱閫氫俊鐨勩?/span>
緗戠粶涓殑鑺傜偣錛堜富鏈烘垨璺敱鍣級閮芥湁閾捐礬灞傚湴鍧銆傞摼璺眰鍦板潃閫氬父鍙仛 LAN 鍦板潃銆佺墿鐞嗗眰鍦板潃鎴?/span> MAC 鍦板潃銆傛瘮濡傦細 E6-E9-00-17-BB-4B.
灞鍩熺綉 (LAN) 閫氫俊鍘熺悊錛?/span> 褰撻傞厤鍣ㄦ兂瑕佸彂閫佷竴涓撫鍒板叾浠栭傞厤鍣ㄦ椂錛屽彂閫侀傞厤鍣ㄥ皢鐩殑閫傞厤鍣ㄧ殑 MAC 鍦板潃鎻掑叆鍒板皝鍖呬腑錛岀劧鍚庝互騫挎挱鐨勬柟寮忓皢姝ゅ皝鍖呭彂閫佸埌 LAN 涓殑姣忎竴鍙頒富鏈恒傚鏋滄兂瑕?/span> LAN 涓殑鎵鏈夊叾浠栭傞厤鍣ㄩ兘鎺ユ敹騫跺鐞嗗畠鍙戦佺殑甯э紝榪欑鎯呭喌涓嬪氨瑕佹彃鍏ヤ竴涓壒瀹氱殑 MAC 騫挎挱鍦板潃鍗沖彲錛屽嵆 FF-FF-FF-FF-FF-FF.
涓鏃﹀皝鍖呬粠 LAN 鐨勭綉鍏沖嚭鏉ヨ繘鍏?/span> Internet 錛岄摼璺眰鍦板潃灝變笉鍐嶆湁鐢紝榪欐椂鍚勮礬鐢卞櫒鏄緷闈犵綉緇滃眰鐨?/span> IP 鍦板潃鏉ュ鎵劇洰鏍囦富鏈恒?/span>
浜屻?/span> IP 鍦板潃
浜掕仈緗戜笂鐨勬瘡涓富鏈哄拰璺敱鍣ㄩ兘鏈?/span> IP 鍦板潃錛屽畠灝嗙綉緇滃彿鍜屼富鏈哄彿緙栫爜鍦ㄤ竴璧楓傛敞鎰忥細 IP 鍦板潃鎸囧畾鐨勫茍涓嶆槸涓繪満錛岃屾槸緗戠粶鎺ュ彛銆?/span>
涓夈?/span> Winsock 搴?/span>
Winsock 搴撴湁涓や釜鐗堟湰錛岀幇鍦ㄥ紑鍙戠綉緇滃簲鐢ㄧ▼搴忛兘浣跨敤 WinSock2. 瀹冨寘鍚簡緇濆ぇ閮ㄥ垎 socket 鍑芥暟鍜岀浉鍏崇粨鏋勭被鍨嬬殑澹版槑鍜屽畾涔夈傚悓鏃惰娣誨姞 WS2_32..lib 閾炬帴搴撱?/span>
鐢ㄦ潵鍔犺澆 Winsock 搴撶殑鍑芥暟鏄?/span> WSAStartup 銆?/span>
int WSAStartup(
聽 __in聽聽聽聽聽聽聽聽聽 WORD wVersionRequested,聽 // 鎸囧畾鎯寵鍔犺澆鐨?/span> Winsock 搴撶殑鐗堟湰銆傞珮瀛楄妭涓烘鐗堟湰鍙鳳紝浣庡瓧鑺備負涓葷増鏈彿銆?/span>
聽 __out聽聽聽聽聽聽聽聽 LPWSADATA lpWSAData,聽聽 // 涓涓寚鍚?/span> WSADATA 鐨勬寚閽堬紝鐢ㄦ潵榪斿洖 DLL 搴撶殑璇︾粏淇℃伅銆?/span>
);
聽聽聽 濡傛灉鍑芥暟璋冪敤鎴愬姛錛屽垯榪斿洖 0 錛屽惁鍒欎細榪斿洖閿欒浠g爜銆傝繖鏃跺氨涓嶉渶瑕佺敤 WSAGetLastError 鍑芥暟鏌ョ湅鍑洪敊鍘熷洜銆?/span>
榪樿娉ㄦ剰錛氭瘡涓涓?/span> WSAStartup 鐨勮皟鐢ㄥ繀欏誨搴斾竴涓?/span> WSACleanup 鐨勮皟鐢ㄣ?/span>
鍥涖?/span> Winsock 鐨勫鍧鏂瑰紡鍜屽瓧鑺傞『搴?/span>
鍦?/span> Winsock 涓紝搴旂敤紼嬪簭閫氳繃 SOCKADDR_IN 緇撴瀯鏉ユ寚瀹?/span> IP 鍦板潃鍜岀鍙e彿銆?/span> Struct sockaddr_in 銆?/span>
涓や釜 IP 鍦板潃涓庡瓧絎︿覆杞崲鐨勫嚱鏁幫細
unsigned long inet_addr(
聽 __in 聽const char* cp; // 灝嗕竴涓?/span> "aa.bb.cc.dd" 綾誨瀷鐨?/span> IP 鍦板潃瀛楃涓茶漿鍖栦負 32 浣嶇殑浜岃繘鍒舵暟銆?/span>
);
char*
FAR inet_ntoa(
聽 __in 聽struct聽聽
in_addr in
);
//
灝?/span>
32
浣嶄簩榪涘埗鏁拌漿鍖栦負瀛楃涓層?/span>
IP 鍦板潃鐨勫瓧鑺傞『搴忥細 TCP/IP 緇熶竴瑙勫畾浣跨敤澶у熬鏂瑰紡浼犺緭鏁版嵁錛屽嵆鏈閲嶈鐨勫瓧鑺傞鍏堝瓨鍌ㄣ?/span> Winsock 鎻愪緵浜嗕竴浜涘嚱鏁版潵澶勭悊鏈湴鏈哄櫒鐨勫瓧鑺傞『搴忓拰緗戠粶瀛楄妭欏哄簭鐨勮漿鎹細
u_short htons(u_short hostshort <16 浣嶇殑涓繪満瀛楄妭搴?span lang="EN-US">>);
u_long htonl(u_long hostlong <32 浣嶇殑涓繪満瀛楄妭搴?span lang="EN-US">>) //杞崲涓虹綉緇滃瓧鑺傚簭
u_short ntohs(u_short 聽netshort <16 浣嶇殑緗戠粶瀛楄妭搴?span lang="EN-US">>)
u_long ntohl(u_long netlong <32 浣嶇殑緗戠粶瀛楄妭搴?span lang="EN-US">>) //杞崲涓轟富鏈哄瓧鑺傚簭
涓婅堪API鏄鉤鍙版棤鍏崇殑銆?span lang="EN-US">
浜斻?/span> Winsock API
鍦ㄦ瘡涓?/span> Wi n 3 2 騫沖彴涓婏紝 Wi n s o c k 閮戒互涓嶅悓鐨勫艦寮忓瓨鍦ㄧ潃銆?/span> Wi n s o c k 鏄綉緇滅紪紼嬫帴鍙o紝鑰屼笉鏄崗璁?span lang="EN-US">