




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄任務目標01相關知識點02任務實施03任務目標(1)了解TCP協議的特點。(2)理解套接字工作原理。(3)會建立面向連接的Socket(TCP方式)通信方式。相關知識1、Socket簡介(1)Socket的英文原義是“孔”或“插座”。作為通信機制,Socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄,用來實現不同虛擬機或不同計算機之間的通信。網絡上的兩個計算機(或程序)通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket。(2)Socket是支持TCP/IP協議的網絡通信的基本操作單元,它是網絡通信過程中端點的抽象表示,包含進行網絡通信必須的五種信息:連接使用的協議、本地主機的IP地址、本地進程的協議端口、遠地主機的IP地址和遠地進程的協議端口。(3)在Internet上的主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,并綁定到一個端口上,不同的端口對應于不同的服務。相關知識2、Socket通信流程使用Socket通信流程如圖6-12所示。首先建立一個套接字,并綁定本機的IP和端口作為服務器端,使用Listen()方法來監聽網絡上是否有客戶端給服務器端發送數據。然后建立客戶端套接字連接服務器端。服務端監聽到客戶端連接請求,使用accept來接收這個連接,最后就可以利用Send/Receive來執行操作了。相關知識圖6-12Socket通信流程圖相關知識任務實施1.開發內容本任務實現服務器端和客戶端的通信,程序設計包括服務器端和客戶端兩個方面。1)服務器端開發流程(1)創建SocketSever控制臺程序。(2)引入命名空間System.Net.Sockets。(3)根據圖6-12給出的服務器端系統通信流程編寫代碼。服務器端參考代碼如下:
任務實施服務器端privatevoidbutton1_Click(objectsender,EventArgse)namespaceSocketSever{classProgram{staticvoidMain(string[]args){SocketlocalSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//建立服務器端SocketIPEndPointiep=newIPEndPoint(IPAddress.Parse(""),1000);//服務器端IP端口1000localSocket.Bind(iep);//綁定本機的IP和端口localSocket.Listen(10);//監聽Console.WriteLine("服務端開始監聽。。。。");SocketclientSocket=localSocket.Accept();//當有可用的客戶端連接嘗試時執行,并返回一個新的socket,用于與客戶端之間的通信byte[]bys=newbyte[1024];//存放服務端接收到客戶端的信息Console.WriteLine("客戶端已連接");clientSocket.Send(Encoding.Default.GetBytes("welcome"));//服務器端向客戶端發送消息"welcome"while(true){intrecv=clientSocket.Receive(bys);//Socket讀取數據if(recv==0)//當客戶端主動自愿斷開連接時recv=0break;Console.WriteLine(Encoding.Default.GetString(bys,0,recv));//輸出接收到客戶端的信息}clientSocket.Close();localSocket.Close();//關閉服務端}}}任務實施2)客戶端開發流程(1)創建SocketClient控制臺程序。(2)引入命名空間System.Net.Sockets。(3)根據圖6-12給出的客戶端流程圖編寫代碼。客戶端參考代碼如下:
任務實施客戶端
/*同步TCP通信客戶端*/namespaceSocketClient{classProgram{staticvoidMain(string[]args){IPAddressremoteHost=IPAddress.Parse("");//建立一個套接字IPEndPointiep=newIPEndPoint(remoteHost,1000);/*服務器地址與端口*/SocketlocalSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);/*客戶端Socket*/localSocket.Connect(iep);/*連接服務器端*/byte[]bys=newbyte[1024];/*存放服務器發送的數據*/intrecv=localSocket.Receive(bys);/*客戶端接收服務器數據*/stringstr=Encoding.Default.GetString(bys,0,recv);/*將服務器返回數據轉化成字符串*/Console.WriteLine(str);/*顯示服務器返回數據*/stringmsg;/*聲明存放用戶輸入的信息*/do{msg=Console.ReadLine();/*獲取輸入數據*/bys=Encoding.Default.GetBytes(msg);/*將字符串轉化成byte數組輸出*/localSocket.Send(bys);/*向服務器端發送數據*/}while(msg!="exit");/*當輸入exit自愿斷開連接*//*禁止下次數據讀取和寫入參數:SocketShutdown.Receive禁止下次數據讀取SocketShutdown.Send禁止下次數據寫入*/localSocket.Shutdown(SocketShutdown.Both);/*在關閉客戶端Socket*/localSocket.Close();}}}結果驗證分別啟動服務器端和客戶端程序,在客戶端輸入helloSever,按回車鍵,服務端中顯示客戶端所發送的消息,如圖6-13所示。圖6-13客戶端向服務端發送數據感謝觀看THANKYOUPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevanthea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北師大版四年級數學下冊認識方程練習題
- 全州縣2024-2025學年六年級下學期小升初招生數學試卷含解析
- 四川工業科技學院《現代模具制造》2023-2024學年第二學期期末試卷
- 西藏拉薩北京實驗中學2025年初三年級語文試題月考試卷含解析
- 南充電影工業職業學院《安裝工程施工技術與造價審計》2023-2024學年第二學期期末試卷
- 石家莊市重點中學2025屆初三下學期9月月考化學試題試卷含解析
- 武漢工程職業技術學院《電動汽車故障檢測與診斷》2023-2024學年第二學期期末試卷
- 西藏山南地區扎囊縣2024-2025學年四下數學期末學業水平測試模擬試題含解析
- 四川美術學院《在經濟統計中的應用》2023-2024學年第一學期期末試卷
- 山西財經大學《現代交換原理與技術實驗》2023-2024學年第二學期期末試卷
- 注冊制改革對市場治理機制的影響及優化路徑
- 4-13-01-06 國家職業標準檔案數字化管理師S (2025年版)
- 資產分紅合同協議
- 中國高職院校畢業生薪酬報告(2024年度)
- 江蘇省南京市聯合體2024-2025學年下學期八年級數學期中練習卷(含部分答案)
- 山東省濟南西城實驗中學2024-2025學年高一下學期4月月考地理試題(原卷版+解析版)
- 跨學科實踐制作簡易桿秤人教版八年級下冊物理
- 口腔門診6S管理
- 沉浸式體驗活動設計合同
- 易制毒化學品銷售人員崗位職責
- 2025四川九洲建筑工程有限責任公司招聘生產經理等崗位6人筆試參考題庫附帶答案詳解
評論
0/150
提交評論