能否提供一个C#编写的TCP串口服务器通信示例程序代码?
时间: 2024-12-12 17:30:56 浏览: 16
当然可以。下面是一个简单的C# TCP串口服务器示例,该程序会在指定的端口等待客户端连接,并接收、处理及回复消息:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
public class TcpServer
{
private TcpListener _listener;
private const string SERVER_IP = "0.0.0.0";
private const int PORT = 9000;
public TcpServer()
{
StartServer();
}
private void StartServer()
{
try
{
_listener = new TcpListener(IPAddress.Parse(SERVER_IP), PORT);
_listener.Start();
Console.WriteLine($"TCP Server is listening on {SERVER_IP}:{PORT}...");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey(true);
_listener.Stop();
}
catch (Exception ex)
{
Console.WriteLine($"Error starting server: {ex.Message}");
}
}
private void HandleClient(TcpClient client)
{
using (var networkStream = client.GetStream())
using (var reader = new StreamReader(networkStream))
using (var writer = new StreamWriter(networkStream))
{
Console.WriteLine($"Connected with client: {client.Client.RemoteEndPoint}.");
string message = reader.ReadLine();
if (!string.IsNullOrEmpty(message))
{
Console.WriteLine($"Received: {message}");
// 这里你可以对接收到的消息进行进一步处理
writer.WriteLine("Echo: " + message);
}
networkStream.Close();
}
}
public static void Main()
{
var server = new TcpServer();
}
}
// 在主函数中启动服务
```
这个示例中,当有新的客户端连接时,`HandleClient`方法会被调用。它会从客户端读取一条消息,将其打印出来(这里只是简单地回显),然后发送一个"Echo:" 的响应。
请注意,这只是一个基本的示例,实际应用中可能还需要添加错误处理、并发处理以及更复杂的通信逻辑。
阅读全文