基於.Net C# 通訊開發-網路調試助手
基於.Net C# 通訊開發-網路調試助手
1、概述
網路調試助手是集TCP/UDP服務端客戶端一體的網路調試工具,可以幫助網路應用設計、開發、測試人員檢查所開發的網路應用軟硬體的數據收髮狀況,提高開發的速度,是TCP/UDP應用開發助手。
實全網路調試助手是基於.net C# Socket 開發的網路調試工具,實現TCP Server、TCP Client、UDP的連接通訊,字元串和HEX數據收發功能。Socket即網路套接字,應用程式可以通過它發送或接收數據,可對其進行像對文件一樣的打開、讀寫和關閉等操作。
2、UDP通訊
UDP是一個簡單的、面向數據報的無連接協議,提供快速但不一定可靠的傳輸服務。利用UDP協議可以使用廣播的方式同時向子網上所有設備發送數據,也可以使用組播的方式同時向網路上的多少設備發送數據。UDP通訊是不分服務端和客戶端的,通訊雙方是對等的。編寫基於UDP協議的應用程式,關鍵在於如何實現數據的發送和接收。
UDP通訊主要功能包括:綁定本地埠、發送數據、接收數據。
2.1、綁定本地埠
對於接收流入的UDP伺服器程式來說,必須將程式與本地系統中指定的UDP埠進行綁定。
//Socket與本地的一個終結點相關聯 IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//定義一個Socket socket.Bind(ipep);
2.2、發送數據
由於UDP協議不需要建立連接,因此可以在任何時間,直接向網路中的任意主機發送UDP數據。通過調用Socket對象的SendTo方法直接將數據發送到遠程主機
//接收數據 EndPoint remote = new IPEndPoint(IPAddress.Any, 0);//定義要發送的電腦的地址 byte[] bytes = new byte[1024]; int count = socket.ReceiveFrom(bytes, ref remote); Console.WriteLine(Encoding.ASCII.GetString(bytes, 0, count));
2.3、接收數據
Socket對象的ReceiveFrom方法能夠在指定的本地IP地址和埠上接收數據,該方法帶一個引用類型的EndPoint實例,並接收到的數據作為Byte數組返回。
//發送數據 string welcome = "Welcome to my test server!"; byte[] data = Encoding.ASCII.GetBytes(welcome); socket.SendTo(data, data.Length, SocketFlags.None, remote);
3、結語
至此介紹完畢,本項目開源,源碼地址://gitee.com/ShiQuanSoft/ShiQuan.SocketHelper
工具壓縮包地址://gitee.com/ShiQuanSoft/ShiQuan.SocketHelper/attach_files/1048902/download/ShiQuan.SocketHelper.zip
不當之處,歡迎指正