C#服務端端口偵聽淺析
我們開始編寫C#服務端端口偵聽的實際代碼,***步就是開啟對本地機器上某一端口的偵聽。首先創建一個控制臺應用程序,將項目名稱命名為ServerConsole,它代表我們的服務端。如果想要與外界進行通信,***件要做的事情就是開啟對端口的偵聽,這就像為計算機打開了一個“門”,所有向這個“門”發送的請求(“敲門”)都會被系統接收到。在C#中可以通過下面幾個步驟完成,首先使用本機Ip地址和端口號創建一個System.Net.Sockets.TcpListener類型的實例,然后在該實例上調用Start()方法,從而開啟對指定端口的偵聽。
C#服務端端口偵聽實例演示:
- using System.Net; // 引入這兩個命名空間,以下同
- using System.Net.Sockets;
- using ... // 略
- class Server {
- static void Main(string[] args) {
- Console.WriteLine("Server is running ... ");
- IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
- TcpListener listener = new TcpListener(ip, 8500);
- listener.Start(); // 開始偵聽
- Console.WriteLine("Start Listening ...");
- Console.WriteLine("\n\n輸入\"Q\"鍵退出。");
- ConsoleKey key;
- do {
- key = Console.ReadKey(true).Key;
- } while (key != ConsoleKey.Q);
- }
- }//C#服務端端口偵聽
- // 獲得IPAddress對象的另外幾種常用方法:
- IPAddress ip = IPAddress.Parse("127.0.0.1");
- IPAddress ip = Dns.GetHostEntry("localhost").AddressList[0];
C#服務端端口偵聽代碼中,我們開啟了對8500端口的偵聽。在運行了上面的程序之后,然后打開“命令提示符”,輸入“netstat-a”,可以看到計算機器中所有打開的端口的狀態。可以從中找到8500端口,看到它的狀態是LISTENING,這說明它已經開始了偵聽:
- TCPjimmy:1030 0.0.0.0:0 LISTENING
- TCPjimmy:3603 0.0.0.0:0 LISTENING
- TCPjimmy:8500 0.0.0.0:0 LISTENING
- TCPjimmy:netbios-ssn 0.0.0.0:0 LISTENING
在打開了對端口的偵聽以后,服務端必須通過某種方式進行阻塞(比如Console.ReadKey()),使得程序不能夠因為運行結束而退出。否則就無法使用“netstat -a”看到端口的連接狀態,因為程序已經退出,連接會自然中斷,再運行“netstat -a”當然就不會顯示端口了。所以程序***按“Q”退出那段代碼是必要的,下面的每段程序都會含有這個代碼段,但為了節省空間,我都省略掉了。
C#服務端端口偵聽的相關內容就向你介紹到這里,希望對你了解和學習端口偵聽有所幫助。
【編輯推薦】