C# TCP服务端开发实战指南,M-LLM Based Video Frame Selection for Efficient Video Understanding论文阅读。

张开发
2026/4/10 7:08:52 15 分钟阅读

分享文章

C# TCP服务端开发实战指南,M-LLM Based Video Frame Selection for Efficient Video Understanding论文阅读。
C# TCP 服务端开发笔记TcpListener/TcpClientTCP 通信基础TCP传输控制协议是一种面向连接的、可靠的网络通信协议。在C#中TcpListener和TcpClient是实现TCP通信的核心类。TcpListener用于监听传入的连接请求而TcpClient用于处理客户端连接和数据传输。创建TCP服务端使用TcpListener创建服务端需要指定监听的IP地址和端口号。以下是一个基本示例using System.Net; using System.Net.Sockets; TcpListener server new TcpListener(IPAddress.Any, 8080); server.Start(); Console.WriteLine(Server started on port 8080...);IPAddress.Any表示监听所有可用的网络接口。Start()方法启动服务端开始监听传入的连接。接受客户端连接服务端需要在一个循环中接受客户端的连接请求并为每个连接创建一个独立的线程或任务处理通信while (true) { TcpClient client server.AcceptTcpClient(); Console.WriteLine($Client connected: {client.Client.RemoteEndPoint}); Task.Run(() HandleClient(client)); }AcceptTcpClient()是一个阻塞方法直到有客户端连接时才返回。每个客户端连接通过Task.Run异步处理。处理客户端通信在HandleClient方法中可以通过NetworkStream读取和写入数据void HandleClient(TcpClient client) { using (NetworkStream stream client.GetStream()) { byte[] buffer new byte[1024]; int bytesRead; while ((bytesRead stream.Read(buffer, 0, buffer.Length)) ! 0) { string data Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine($Received: {data}); // 回显数据 byte[] response Encoding.UTF8.GetBytes($Echo: {data}); stream.Write(response, 0, response.Length); } } client.Close(); }NetworkStream提供了读写数据的能力。Read方法会阻塞直到接收到数据或连接关闭。客户端实现客户端可以使用TcpClient连接到服务端并发送数据using (TcpClient client new TcpClient(127.0.0.1, 8080)) using (NetworkStream stream client.GetStream()) { string message Hello, Server!; byte[] data Encoding.UTF8.GetBytes(message); stream.Write(data, 0, data.Length); byte[] buffer new byte[1024]; int bytesRead stream.Read(buffer, 0, buffer.Length); string response Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine($Received: {response}); }异常处理TCP通信可能因网络问题或客户端断开连接而抛出异常。务必在代码中添加异常处理try { // TCP通信代码 } catch (SocketException ex) { Console.WriteLine($Socket error: {ex.Message}); } catch (IOException ex) { Console.WriteLine($IO error: {ex.Message}); }多线程与资源管理在高并发场景下服务端需要高效管理客户端连接和资源。可以使用线程池或异步编程模型如async/await优化性能async Task HandleClientAsync(TcpClient client) { try { using (NetworkStream stream client.GetStream()) { byte[] buffer new byte[1024]; int bytesRead await stream.ReadAsync(buffer, 0, buffer.Length); string data Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine($Received: {data}); byte[] response Encoding.UTF8.GetBytes($Echo: {data}); await stream.WriteAsync(response, 0, response.Length); } } catch (Exception ex) { Console.WriteLine($Error: {ex.Message}); } finally { client.Close(); } }总结使用TcpListener和TcpClient可以快速构建TCP服务端和客户端应用。关键点包括监听端口、接受连接、处理数据流以及管理资源。异步编程模型能显著提升服务端的并发处理能力。share.btimpnr.cn/Article/details/550575.HKMshare.wsyuelc.cn/Article/details/817920.HKMshare.tszkxfo.cn/Article/details/466160.HKMshare.ztrqfyt.cn/Article/details/834790.HKMshare.jgbouib.cn/Article/details/181970.HKM

更多文章