C# TCPServer实例代码
时间: 2025-03-17 09:13:34 浏览: 8
我应该先提供一个简单的同步示例,因为这样更易于理解。然后可能还需要提到异步方法,因为实际应用中异步处理更高效。需要检查引用的资料是否有直接相关的代码片段。引用[1]中的示例使用了TcpListener,这是一个好的起点。引用[3]中的链接指向微软的文档,那里可能有官方示例,但用户可能需要直接的代码。
接下来,我需要确保代码符合C#的语法规范,正确使用TcpListener、Start()、AcceptTcpClient()等方法。同时,处理异常和关闭连接也很重要,避免资源泄漏。可能还需要解释代码的关键部分,比如如何接收客户端连接、处理数据流等。
另外,用户可能想知道如何测试这个服务器,比如使用telnet或者编写客户端代码。引用[3]中提到了测试示例,或许可以建议用户参考那个链接。同时,引用[2]区分了TCP和UDP,所以需要明确示例是TCP协议。
最后,生成相关问题,比如异步实现、处理多个客户端、异常处理等,帮助用户深入理解。以下是使用C#实现TCP服务器的示例代码和说明:
基础TCP服务器实现
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class TcpServer
{
public static void Main()
{
const int PORT = 8080;
TcpListener server = new TcpListener(IPAddress.Any, PORT); // 监听所有网络接口[^1]
server.Start();
Console.WriteLine($"服务器已启动,监听端口:{PORT}");
try
{
while (true)
{
TcpClient client = server.AcceptTcpClient(); // 阻塞等待客户端连接[^2]
Console.WriteLine($"客户端已连接:{client.Client.RemoteEndPoint}");
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine($"收到数据:{receivedData}");
// 返回响应
byte[] response = Encoding.ASCII.GetBytes("Message received");
stream.Write(response, 0, response.Length);
client.Close();
}
}
finally
{
server.Stop();
}
}
}
关键功能说明:
- TcpListener初始化:使用
IPAddress.Any
绑定所有可用网络接口 - 客户端连接:
AcceptTcpClient()
同步接收连接请求 - 数据传输:通过
NetworkStream
进行读写操作 - 协议类型:明确使用
ProtocolType.Tcp
进行TCP通信[^2]
测试方法:
- 使用telnet工具连接:
telnet 127.0.0.1 8080
- 发送任意文本消息,服务器将返回确认响应
进阶建议:
- 异步处理可使用
BeginAcceptTcpClient
/EndAcceptTcpClient
[^3] - 多客户端处理建议使用线程池
- 增加异常处理(如
SocketException
)
相关推荐


















