C# 簡單TCP協議


需要引用 using System.Net;
using System.Net.Sockets;
 1 namespace TCPServer {
 2     class Program {
 3         static void Main(string[] args) {
 4             int port = 888;//端口
 5             TcpClient tcpClient;//創建TCP連接對象(存入客服端所鏈接)
 6             IPAddress[] serverIP= Dns.GetHostAddresses("127.0.0.1");//定義IP地址
 7             IPAddress localAddres = serverIP[0];//Ip地址;
 8             TcpListener tcpListener = new TcpListener(localAddres, port);//監聽套接字
 9             tcpListener.Start();//開始監聽
10             Console.WriteLine("服務器啟動成功,等待用戶接入。。。");//輸出信息
11             try {
12                 tcpClient = tcpListener.AcceptTcpClient();//每接收一個客服端生成一個TcpClient
13                 NetworkStream networkStream = tcpClient.GetStream();//獲取網絡數據流
14                 BinaryReader reader = new BinaryReader(networkStream);//定義數據讀取對象
15                 BinaryWriter writer = new BinaryWriter(networkStream);//定義數據寫入對象
16                 while(true) {
17                     try {
18                         string strReader = reader.ReadString();//接收消息
19                         string[] strReaders = strReader.Split(new char[] { ' ' });//截取客服端信息
20                         Console.WriteLine("有客服端接入,客戶IP:" + strReaders[0]);//輸出接收客服端IP地址
21                         string strWriter = "我是服務器,歡迎光臨";//定義服務端要寫的內容
22                         Console.WriteLine("來自客服端的消息:" + strReaders[1]);//輸出接收的消息
23                         writer.Write(strWriter);//向對方發送消息
24                     }
25                     catch {
26                         break;
27                     }
28                 }
29             }
30             catch {
31                 Console.WriteLine("接收數據失敗");
32             }
33 
34         }
35     }
36 }
View 服務端
 1 namespace TCPClient {
 2     class Program {
 3         static void Main(string[] args) {
 4             TcpClient tcpClient = new TcpClient();//創建一個TcpClient對象,自動分配主機IP地址和端口號
 5             tcpClient.Connect("127.0.0.1", 888);//連接服務器,其IP和端口號為127.0.0.1和888
 6             if (tcpClient != null) {
 7                 Console.WriteLine("連接服務器成功");
 8                 NetworkStream networkStream = tcpClient.GetStream();//獲取網絡數據流
 9                 BinaryReader reader = new BinaryReader(networkStream);//定義數據讀取對象
10                 BinaryWriter writer = new BinaryWriter(networkStream);//定義數據寫入對象
11                 string localip = "127.0.0.1";//存儲本機IP,默認值為127.0.0.1
12                 IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());//獲取所有Ip地址
13                 foreach (var item in ips) {
14                     if (!item.IsIPv6SiteLocal)//如果不是ipv6
15                         localip = item.ToString();
16                 }
17                 writer.Write(localip + " 你好服務器,我是客服端");//向服務器發送消息
18                 while (true) {
19                     try {
20                         string strReader = reader.ReadString();//接收服務器發送的數據
21                         if(strReader!=null) {
22                             Console.WriteLine("來自服務器的消息:" + strReader);//輸出接收服務器的消息
23                         }
24                     }
25                     catch {
26                         break;//出錯退出循環
27                     }
28                 }
29             }
30             else {
31                 Console.WriteLine("連接服務器錯誤");
32             }
33         }
34     }
35 }
View 客服端

上述代碼,通俗易懂,注釋詳細,適合小白學習。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM