需要引用 using System.Net;
using System.Net.Sockets;
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 }

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 }
上述代碼,通俗易懂,注釋詳細,適合小白學習。