Windows Socket 網(wǎng)絡(luò)編程

Windows Socket 網(wǎng)絡(luò)編程

ID:41032998

大?。?6.00 KB

頁數(shù):9頁

時間:2019-08-14

Windows Socket 網(wǎng)絡(luò)編程_第1頁
Windows Socket 網(wǎng)絡(luò)編程_第2頁
Windows Socket 網(wǎng)絡(luò)編程_第3頁
Windows Socket 網(wǎng)絡(luò)編程_第4頁
Windows Socket 網(wǎng)絡(luò)編程_第5頁
資源描述:

《Windows Socket 網(wǎng)絡(luò)編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、WindowsSocket網(wǎng)絡(luò)編程(二)——套接字編程原理作者:冰點工作室小鷹一、客戶機/服務(wù)器模式在TCP/IP網(wǎng)絡(luò)中兩個進程間的相互作用的主機模式是客戶機/服務(wù)器模式(Client/Servermodel)。該模式的建立基于以下兩點:1、非對等作用;2、通信完全是異步的??蛻魴C/服務(wù)器模式在操作過程中采取的是主動請示方式:首先服務(wù)器方要先啟動,并根據(jù)請示提供相應(yīng)服務(wù):(過程如下)1、打開一通信通道并告知本地主機,它愿意在某一個公認地址上接收客戶請求。2、等待客戶請求到達該端口。3、接收到重復(fù)服務(wù)請求,處理該請求并發(fā)送

2、應(yīng)答信號。4、返回第二步,等待另一客戶請求5、關(guān)閉服務(wù)器??蛻舴剑?、打開一通信通道,并連接到服務(wù)器所在主機的特定端口。2、向服務(wù)器發(fā)送服務(wù)請求報文,等待并接收應(yīng)答;繼續(xù)提出請求……3、請求結(jié)束后關(guān)閉通信通道并終止。二、基本套接字為了更好說明套接字編程原理,給出幾個基本的套接字,在以后的篇幅中會給出更詳細的使用說明。1、創(chuàng)建套接字——socket()功能:使用前創(chuàng)建一個新的套接字格式:SOCKETPASCALFARsocket(intaf,inttype,intprocotol);參數(shù):af:通信發(fā)生的區(qū)域type:要建

3、立的套接字類型procotol:使用的特定協(xié)議2、指定本地地址——bind()功能:將套接字地址與所創(chuàng)建的套接字號聯(lián)系起來。格式:intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);參數(shù):s:是由socket()調(diào)用返回的并且未作連接的套接字描述符(套接字號)。其它:沒有錯誤,bind()返回0,否則SOCKET_ERROR地址結(jié)構(gòu)說明:structsockaddr_in{shortsin_family;//AF_INETu_shortsin_

4、port;//16位端口號,網(wǎng)絡(luò)字節(jié)順序structin_addrsin_addr;//32位IP地址,網(wǎng)絡(luò)字節(jié)順序charsin_zero[8];//保留}3、建立套接字連接——connect()和accept()功能:共同完成連接工作格式:intPASCALFARconnect(SOCKETs,conststructsockaddrFAR*name,intnamelen);SOCKETPASCALFARaccept(SOCKETs,structsockaddrFAR*name,intFAR*addrlen);參數(shù):同

5、上4、監(jiān)聽連接——listen()功能:用于面向連接服務(wù)器,表明它愿意接收連接。格式:intPASCALFARlisten(SOCKETs,intbacklog);5、數(shù)據(jù)傳輸——send()與recv()功能:數(shù)據(jù)的發(fā)送與接收格式:intPASCALFARsend(SOCKETs,constcharFAR*buf,intlen,intflags);intPASCALFARrecv(SOCKETs,constcharFAR*buf,intlen,intflags);參數(shù):buf:指向存有傳輸數(shù)據(jù)的緩沖區(qū)的指針。6、多路復(fù)

6、用——select()功能:用來檢測一個或多個套接字狀態(tài)。格式:intPASCALFARselect(intnfds,fd_setFAR*readfds,fd_setFAR*writefds,fd_setFAR*exceptfds,conststructtimevalFAR*timeout);參數(shù):readfds:指向要做讀檢測的指針writefds:指向要做寫檢測的指針exceptfds:指向要檢測是否出錯的指針timeout:最大等待時間7、關(guān)閉套接字——closesocket()功能:關(guān)閉套接字s格式:BOOLPA

7、SCALFARclosesocket(SOCKETs);三、典型過程圖2.1面向連接的套接字的系統(tǒng)調(diào)用時序圖2.2無連接協(xié)議的套接字調(diào)用時序圖2.3面向連接的應(yīng)用程序流程圖類比(什么是socket?)裝上你的新電話(怎樣偵聽?)撥號(如何調(diào)用socket)談話(如何通過sockets交談)掛起(結(jié)束)世界語(交流的語言很重要)未來在你的掌握了(下一步?)介紹當(dāng)你進入UNIX的神秘世界后,立刻會發(fā)現(xiàn)越來越多的東西難以理解。對于大多數(shù)人來說,BSDsocket的概念就是其中一個。這是一個很短的教程來解釋他們是什么、他們?nèi)绾喂?/p>

8、作并給出一些簡單的代碼來解釋如何使用他們。類比(什么是socket?)socket是進行程序間通訊(IPC)的BSD方法。這意味著socket用來讓一個進程和其他的進程互通信息,就象我們用電話來和其他的人交流一樣。用電話來比喻是很恰當(dāng)?shù)?,我們在后面將一直用電話這個概念來描敘socket。裝上你的新電話(怎樣偵聽?)一

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

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

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