阅读量: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客户端。服务器将接收到客户端发送的数据,并向客户端发送响应。客户端将接收到服务器的响应并显示在控制台上。