在C#中,要创建一个简单的TCP监听器,你可以使用System.Net.Sockets.TcpListener
类。以下是一个简单的示例,展示了如何创建一个TCP监听器并监听来自客户端的连接:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
class TcpListenerExample
{
static void Main(string[] args)
{
// 设置监听的IP地址和端口号
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int port = 8080;
// 创建一个TcpListener实例
TcpListener tcpListener = new TcpListener(ipAddress, port);
// 开始监听
Console.WriteLine("开始监听...");
tcpListener.Start();
// 等待客户端连接
Console.WriteLine("等待客户端连接...");
TcpClient client = await tcpListener.AcceptTcpClientAsync();
// 处理客户端连接
HandleClientConnection(client);
// 关闭监听器
Console.WriteLine("关闭监听器...");
tcpListener.Stop();
}
static async Task HandleClientConnection(TcpClient client)
{
// 获取客户端的输入和输出流
NetworkStream inputStream = client.GetStream();
NetworkStream outputStream = client.GetStream();
// 读取客户端发送的数据
byte[] buffer = new byte[1024];
int bytesRead = await inputStream.ReadAsync(buffer, 0, buffer.Length);
string receivedData = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine($"收到客户端消息: {receivedData}");
// 向客户端发送响应
string response = "Hello from server!";
byte[] responseBytes = Encoding.UTF8.GetBytes(response);
await outputStream.WriteAsync(responseBytes, 0, responseBytes.Length);
Console.WriteLine("向客户端发送响应: " + response);
// 关闭客户端连接
client.Close();
}
}
这个示例中,我们首先创建了一个TcpListener
实例,并指定了监听的IP地址和端口号。然后,我们调用Start()
方法开始监听。当客户端连接时,AcceptTcpClientAsync()
方法会返回一个TcpClient
实例,我们可以使用它来处理客户端的输入和输出流。在这个例子中,我们只是简单地读取客户端发送的数据,并向客户端发送一条响应。最后,我们关闭客户端连接并停止监听器。