C#如何实现TCP/IP通信

avatar
作者
筋斗云
阅读量:0

在C#中,可以使用System.Net.Sockets命名空间中的类来实现TCP/IP通信。下面是一个简单的示例,展示了如何创建一个TCP服务器和客户端进行通信。

首先,我们创建一个TCP服务器:

using System; using System.Net; using System.Net.Sockets; using System.Text;  namespace TcpServer {     class Program     {         static void Main(string[] args)         {             // 创建一个TcpListener实例,监听指定的IP地址和端口             TcpListener server = new TcpListener(IPAddress.Any, 8080);             server.Start();              Console.WriteLine("服务器已启动,等待客户端连接...");              while (true)             {                 // 当有客户端连接时,接受连接并返回一个TcpClient实例                 TcpClient client = server.AcceptTcpClient();                 Console.WriteLine("客户端已连接:" + client.Client.RemoteEndPoint);                  // 获取客户端的网络流                 NetworkStream stream = client.GetStream();                  // 读取客户端发送的数据                 byte[] data = new byte[256];                 int i = stream.Read(data, 0, data.Length);                  // 将接收到的数据转换为字符串                 string receivedData = Encoding.ASCII.GetString(data, 0, i);                 Console.WriteLine("接收到的数据: " + receivedData);                  // 向客户端发送响应                 string response = "服务器已收到数据: " + receivedData;                 data = Encoding.ASCII.GetBytes(response);                 stream.Write(data, 0, data.Length);                  // 关闭客户端连接                 client.Close();             }         }     } } 

接下来,我们创建一个TCP客户端:

using System; using System.Net.Sockets; using System.Text;  namespace TcpClient {     class Program     {         static void Main(string[] args)         {             // 创建一个TcpClient实例,连接到服务器             TcpClient client = new TcpClient("127.0.0.1", 8080);              // 获取服务器的网络流             NetworkStream stream = client.GetStream();              // 向服务器发送数据             string sendData = "你好,这是一条来自客户端的消息!";             byte[] data = Encoding.ASCII.GetBytes(sendData);             stream.Write(data, 0, data.Length);              // 从服务器接收响应             data = new byte[256];             int i = stream.Read(data, 0, data.Length);              // 将接收到的数据转换为字符串             string receivedData = Encoding.ASCII.GetString(data, 0, i);             Console.WriteLine("接收到的响应: " + receivedData);              // 关闭客户端连接             client.Close();         }     } } 

运行上述代码,首先启动TCP服务器,然后启动TCP客户端。服务器将接收到客户端发送的数据,并向客户端发送响应。客户端将接收到服务器的响应并显示在控制台上。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!