1. 程式人生 > 其它 >基於C#的TCP網路測試助手(一)

基於C#的TCP網路測試助手(一)

  初學了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型別的變數

  差不多到這裡就可以進行資料的互動了,也就是核心部分已經是完成了,站在巨硬的肩膀上幹活真輕鬆。