windows socket編程實(shí)戰(zhàn)

windows socket編程實(shí)戰(zhàn)

ID:9318308

大?。?17.00 KB

頁(yè)數(shù):10頁(yè)

時(shí)間:2018-04-27

windows socket編程實(shí)戰(zhàn)_第1頁(yè)
windows socket編程實(shí)戰(zhàn)_第2頁(yè)
windows socket編程實(shí)戰(zhàn)_第3頁(yè)
windows socket編程實(shí)戰(zhàn)_第4頁(yè)
windows socket編程實(shí)戰(zhàn)_第5頁(yè)
資源描述:

《windows socket編程實(shí)戰(zhàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、windowssocket編程實(shí)戰(zhàn)Socket中一個(gè)比較重要的結(jié)構(gòu)體:hostent,應(yīng)該用好這個(gè)結(jié)構(gòu)體。只允許復(fù)制應(yīng)用程序一個(gè)備份,不允許應(yīng)用程序自己修改,只能由系統(tǒng)修改,在調(diào)用任何socket結(jié)構(gòu)之前,都應(yīng)該copy自己需要的信息。通訊編程詳見MSDN中WindowsCEdocument->ApplicationDevelop->CommunicationServices->WindowsSockets章節(jié)。1winsock的啟動(dòng)和終止——WSAStartup():使用winsock之前,必須對(duì)其進(jìn)行初始化(VC中項(xiàng)目創(chuàng)建時(shí)不包括socket的時(shí)候),

2、將其加載,否則,將返回SOCKET_ERROR錯(cuò)誤,錯(cuò)誤信息為WSANOTINITIALIZED。用WSAStartup函數(shù)可加載WinSock庫(kù)函數(shù)聲明:intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData);//成功返0,否則返非0參數(shù)說明:wVersionRequested?。篧inSock庫(kù)的版本號(hào),高位指定副版本,低位指定主版本,可通過MAKEWORD(X,Y)宏指定,X為低位,Y為高位。例:wVersionRequested=MAKEWORD(1,2);lpWSAData  : 接收Win

3、Sock實(shí)現(xiàn)細(xì)節(jié)的LPWSADATA結(jié)構(gòu)。TypedefstructWSAData{??WORD????????????wVersion;//設(shè)置成準(zhǔn)備使用的WinSock版本??WORD????????????wHighVersion;//存放的是現(xiàn)有的WinSock庫(kù)的最高版本,與wVersionRequested參數(shù)相同??char????????????szDescription[WSADESCRIPTION_LEN+1];??char????????????szSystemStatus[WSASYSSTATUS_LEN+1];??unsigned

4、short??iMaxSockets;??unsignedshort??iMaxUdpDg;??charFAR*??????lpVendorInfo;}WSADATA,FAR*LPWSADATA;則一個(gè)程序要使用1.2版本的WinSock,程序?yàn)椋?include"afxsock.h"WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(2,2);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){AfxMessa

5、geBox("socket初始化失敗!");return;}if(LOBYTE(wsaData.wVersion)!=2

6、

7、HIBYTE(wsaData.wVersion)!=2){WSACleanup();AfxMessageBox("socket創(chuàng)建版本錯(cuò)誤!");return;}各windows平臺(tái)支持的WinSock最新版本平臺(tái)WinSock版本W(wǎng)in951.1Win982.2NT4.02.2Win20002.2WinCE1.1使用完WinSock釋放所使用的資料:intWSACleanup(void);//成功返回0,否則返回SOCKET_ERR

8、OR示例代碼:WSACleanup();2創(chuàng)建套接字——Socket()和WSASocket()網(wǎng)絡(luò)通信必須得創(chuàng)建套接字,創(chuàng)建一個(gè)套接字,使用下面的函數(shù):SOCKETSocket(intaf,inttype,intprotocol);或者:SOCKETWSASocket(intaf,inttype,intprotocol,LPWSAPROTOCOL_INFOlpProtocolinfo,GROUPg,DWORDdwFlags)注:WSASocket為Socket的WinSock2版本,其原理與方式與原函數(shù)類似。調(diào)用成功則返回SOCKET類型的套接字句柄,否

9、則返回INVALID_SOCKET錯(cuò)誤參數(shù)說明:af: 協(xié)議簇,是常值 ,在windowsSocket網(wǎng)絡(luò)程序中,其只能為AF_INET,以下所有內(nèi)容皆針對(duì)于AF_INET協(xié)議所言協(xié)議簇常值協(xié)議簇注釋AF_INET網(wǎng)際協(xié)議AF_IPXIPX/SPX協(xié)議AF_NETBIOSNetBIOS協(xié)議AF_APPLETALKAppleTalkAF_TAMATMAF_IRDAInfraredSocketsType: 套接字的類型,常值。下列為AF_INET協(xié)議簇支持的套接字類型:AF_INET協(xié)議簇支持的套接字類型套接字類型注釋所用的通信協(xié)議SOCK_STREAM字節(jié)流

10、套接字TCP協(xié)議SOCK_DGRAM數(shù)據(jù)報(bào)套接字UDP協(xié)議SOCK

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。