基於C#的TCP網路測試助手(一)
阿新 • • 發佈:2021-07-14
初學了Socket通訊,想就此自己重頭開始做一個網路除錯助手,以檢驗下學習成果。寫篇筆記來記錄這個過程,供大家一起學習,部分內容來源網路!
文章分為2個部分,第一部分用自己的語言介紹下socket和TCP,第二部分主要講網路助手原始碼。
TCP在工業自動化的通訊方案中佔據了90%的成分,學會、理解TCP是非常重要的。而Socket的建立才能讓TCP動起來,沒有socket,TCP就無法去運作。簡而言之可以這樣去理解:“TCP/IP只是一個協議棧,就像作業系統的執行機制一樣,必須要具體實現,同時還要提供對外的操作介面。這個就像作業系統會提供標準的程式設計介面,比如win32程式設計介面一樣,TCP/IP也要提供可供程式設計師做網路開發所用的介面,這就是Socket程式設計介面 ”。
所以在做tcp除錯前,我需要讓兩頭都有一個介面,那就要開是手動去“例項”一個socket出來用。
在.Net平臺下我們怎麼快速的去建立一個socket client?畢竟微軟是專業的,在其system.Net.Sockets裡我們可以看到一個 Socket 類,有這樣一個類我們就能快速的建立起一個client。
private Socket client; private Socket server;
然後確定兩者間的識別資訊:ip和port口
IPAddress iPAddress;
IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, Port);
這樣一個簡單的socket就建立起來了,接下來就是通訊了:連線和釋放資源
client.Connect(iPEndPoint);//連線指定客戶端
client.Dispose();
連線上之後肯定要就收和傳送資料的。
client.Send(Buffer);//將資料傳送到指定客戶端去,按照位元組傳送 client.Receive(ReData);//接收資料到ReData中,並返回一個代表位元組數的int型別的變數
差不多到這裡就可以進行資料的互動了,也就是核心部分已經是完成了,站在巨硬的肩膀上幹活真輕鬆。