




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖北工業大學計算機學院網絡協議分析器 Ethereal實驗指導書實驗五Socket網絡編程10 網絡一班 1010322105劉徐俊5網絡工程系-2012年編制一、實驗目的和要求?1、理解進程通信的原理及通信過程;?2、掌握基本的網絡編程方法二、實驗內容1、學習SOCKETS程的基本方法;2、學習應用C語言與 WinSock2進行簡單的無連接的網絡程序設計,實現網絡數據傳輸;3、學習應用C語言與 WinSock2進行簡單的面向連接的網絡程序設計,實現網絡數據傳輸。實驗設備PC機、VC四、背景知識1、關于使用套接字編程的一些基本概念(1)半相關網絡中用一個三元組可以在全局唯一標志一個進程:(協議
2、,本地地址,本地端口號)。這樣一個三元組,叫做一個半相關(half-association ),它指定連接的每半部分。(2)全相關一個完整的網間進程通信需要由兩個進程組成,并且只能使用同一種高層協議。也就是說,不可能通信的一端用TCP協議,而另一端用 UDP協議。因此一個完整的網間通信需要一個五元組來標識:(協議,本地地址,本地端口號,遠地地址,遠地端口號)。這樣一個五元組,叫做一個全相關( association ),即兩個協議相同的半相關才能組合成一個全相關。(3)TCP/IP協議的地址結構為:struct sockaddr_ inshort sin_family;/*AF INET*/u
3、_short sin_port;/*16位端口號,網絡字節順序 */struct in _addr sin _addr;/*32位IP地址,網絡字節順序*/*保留*/char sin _zero8;(4)套接字類型TCP/IP的socket提供下列三種類型套接字:流式套接字(SOCK_STREAM提供了一個面向連接、可靠的數據傳輸服務,數據無差錯、無重復地發送,且按發送順序接收。內設FTF)即使用流式套接流量控制,避免數據流超限;數據被看作是字節流,無長度限制。文件傳送協議( 字。 數據報式套接字(SOCK_DGRAM提供了一個無連接服務。數據包以獨立包形式被發送,不提供無錯保證,數據可能丟失
4、或重復,并且 接收順序混亂。網絡文件系統(NFS使用數據報式套接字。 原始式套接字(SOCK_RAW該接口允許對較低層協議,如IP、ICMP直接訪問。常用于檢驗新的協議實現或訪問現有服務中配置的新設備。輸入/輸出多路復用select()以反映那些滿足特定條件的套接字的子集,同時, 格式如下:select()調用用來檢測一個或多個套接字的狀態。對每一個套接字來說,這個調用可以請求讀、寫或 錯誤狀態方面的信息。請求給定狀態的套接字集合由一個fd_set結構指示。在返回時,此結構被更新,select()調用返回滿足條件的套接字的數目,其調用int select(i nt nfds, fd_set F
5、AR * readfds, fd_set FAR * writefds, fd_set FAR * exce ptfds.const struct timeval FAR * timeout);參數nfds指明被檢查的套接字描述符的值域,此變量一般被忽略。參數readfds指向要做讀檢測的套接字描述符集合的指針,調用者希望從中讀取數據。參數writefds指向要做寫檢測的套接字描述符集合的指針。exce ptfds指向要檢測是否出錯的套接字描述符集合的指針。timeout指向select()函數等待的最大時間,如果設為NULL則為阻塞操作。select() 返回包含在fd_setSOCKET
6、ERROR結構中已準備好的套接字描述符的總數目,或者是發生錯誤則返回2、用于無連接協議(如 UDP的SOCKETS統調用流程框圖服務器客戶3、用于面向連接協議(如 TCP的SOCKET!統調用流程框圖服務器客戶(acce pt()5:用返回的套接字和客戶端進行通信(se nd()/recv()五、實驗步驟服務器端編程的步驟:1:加載套接字庫,創建套接字(WSAStartu p( )/socket()2:綁定套接字到一個IP地址和一個端口上(bind()3:將套接字設置為監聽模式等待連接請求(liste n()4:請求到來后,接受連接請求,返回一個新的對應于此次連接的套接字7:關閉套接字,關閉加
7、載的套接字庫6:返回,等待另一連接請求;(closesocket()/WSACIea nup()服務器端代碼如下:#in clude #in clude void mai n()WORD wVersio nRequested;WSADATA wsaData;int err;wVersio nRequested = MAKEWORD( 1, 1 );err = WSAStartu p( wVersio nRequested, &wsaData );if ( err != 0 ) return;if ( LOBYTE( wsaData.wVersion ) != 1 |HIBYTE( wsaDat
8、a.wVersion ) != 1 ) WSACIea nup();return;SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_ un .S_addr=hto nl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_ port=hto ns(6000);bin d(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);liste n( sockSrv,5);SOCKADDR_IN add
9、rClie nt;int len=sizeof(SOCKADDR);while(1)SOCKET sockCo nn=acce pt(sockSrv,(SOCKADDR*)&addrClie nt,&le n);char sen dBuf50;sprin tf(se ndBuf,Welcome %s to here!,i net_n toa(addrClie nt.s in _addr);sen d(sockC onn,sen dBuf,strle n(sen dBuf)+1,0);char recvBuf50;recv(sockC onn, recvBuf,50,0);prin tf(%sn
10、,recvBuf);closesocket(sockC onn);客戶端編程的步驟:1:加載套接字庫,創建套接字(WSAStartu p( )/socket()2:向服務器發出連接請求(co nn ect() 3:和服務器端進行通信(se nd()/recv()4:關閉套接字,關閉加載的套接字庫(closesocket()/WSAClea nup()。客戶端的代碼如下:#in elude #in elude void mai n()WORD wVersio nRequested;WSADATA wsaData;int err;wVersio nRequested = MAKEWORD( 1,
11、1 );err = WSAStartu p( wVersio nRequested, &wsaData );if ( err != 0 ) return;if ( LOBYTE( wsaData.wVersion ) != 1 |HIBYTE( wsaData.wVersion ) != 1 ) WSAClea nup();return;SOCKET sockClie nt=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_ un .S_addr=i net_addr(127.0.0.1);addrSrv.
12、sin_family=AF_INET;addrSrv.sin_ port=hto ns(6000);conn ect(sockClie nt,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);sen d(sockClie nt,hello,strle n(hello)+1,0);char recvBuf50;recv(sockClie nt,recvBuf,50,0);prin tf(%sn,recvBuf);closesocket(sockClie nt);WSAClea nup();六、思考題Q1.在客戶/服務器模型當中,客戶進程的端口號和服務器進程的端口號都是由程序給出說明的嗎?為什么?是的;都是由connect ()綁定的Q2.在TCP/IP網絡中,當客戶與服務員進程建立了一條TCP連接以后,是否屬于該連接的所有包都是經過同一路徑(即一條虛電路)傳遞的?為什么?是的;虛電路建立后,通信雙方就沿著已建立的虛電路發送分組。這樣首部不 需要填寫完整的目的主機地址,只需填寫這條虛電路的編號。七心得體會這次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年家庭教育指導師考試試題及答案
- 2025年女性健康與發展課程考試試題及答案
- 一級建造師試題及答案
- 木材生產加工合同協議書
- 中國創意家居飾品市場深度調查報告
- 山東省日照市2024-2025學年高一下學期期中考試數學模擬試卷(解析)
- 瘢痕妊娠介入治療
- 2025年軟件定義存儲項目發展計劃
- 礦難救援衛星電話通信保障服務合同
- 大數據分析驅動的電商倉儲物流托管合同
- 設計合作月結協議書
- 2022《農產品質量安全法》全文解讀與學習
- 2025屆河北省邢臺市清河中學高三下學期5月模擬物理試卷(原卷版+解析版)
- 【部編版】六年級語文下冊《語文園地五》精美課件
- 溴素行業分析報告
- 登革熱防控知識培訓
- 糖尿病患者血脂管理中國專家共識(2024版)解讀
- 藥物制劑輔助材料試題及答案
- 婚前心理知識講座課件
- 蛋雞育雛前后管理制度
- 安全文明及綠色施工方案
評論
0/150
提交評論