首先实现TCP服务器监听客户端连接并收发数据,再创建客户端连接服务器发送消息并接收响应,最后通过异步处理、异常捕获和资源释放优化程序稳定性。

在 C# 中实现简单的 TCP Socket 通信,主要依赖于 System.Net.Sockets 命名空间中的 TcpClient 和 TcpListener 类。通过这两个类,可以快速搭建一个基于客户端-服务器模型的通信程序。
1. 创建 TCP 服务器端
服务器负责监听指定端口,等待客户端连接,并接收和发送数据。
使用 TcpListener 监听客户端请求:
指定 IP 地址和端口号启动监听调用 AcceptTcpClient() 等待客户端接入通过 NetworkStream 读取或写入数据
示例代码:
using System;using System.IO;using System.Net;using System.Net.Sockets;class TcpServer{static void Main(){TcpListener listener = new TcpListener(IPAddress.Any, 8080);listener.Start();Console.WriteLine("服务器已启动,等待客户端连接...");
using (TcpClient client = listener.AcceptTcpClient()) { Console.WriteLine("客户端已连接。"); using (NetworkStream stream = client.GetStream()) { byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string message = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine("收到消息:" + message); // 回复客户端 string response = "服务器已收到你的消息:" + message; byte[] responseBytes = System.Text.Encoding.UTF8.GetBytes(response); stream.Write(responseBytes, 0, responseBytes.Length); } } listener.Stop(); Console.WriteLine("服务器已关闭。");}
}
2. 创建 TCP 客户端
客户端用于连接服务器,发送数据并接收响应。
使用 TcpClient 连接到服务器:
指定服务器 IP 和端口进行连接通过 NetworkStream 发送和接收数据
示例代码:
using System;using System.IO;using System.Net.Sockets;using System.Text;class TcpClientApp{static void Main(){using (TcpClient client = new TcpClient()){client.Connect(IPAddress.Loopback, 8080); // 连接本地 8080 端口Console.WriteLine("已连接到服务器。");
using (NetworkStream stream = client.GetStream()) { // 发送消息 string message = "Hello, Server!"; byte[] data = Encoding.UTF8.GetBytes(message); stream.Write(data, 0, data.Length); Console.WriteLine("消息已发送。"); // 接收回复 byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string response = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine("收到回复:" + response); } } Console.WriteLine("连接已关闭。");}
}
3. 注意事项与优化建议
虽然上述例子实现了基本通信,但在实际应用中需要注意以下几点:
使用异步方法(如 BeginConnect / BeginRead)避免阻塞主线程添加异常处理(try-catch)应对网络中断或连接失败定义通信协议,比如消息长度前缀,防止粘包问题及时释放资源,确保 TcpClient 和 TcpListener 被正确关闭
4. 测试运行步骤
要测试这个简单通信程序:
先运行服务器端程序再运行客户端程序观察控制台输出是否正常收发消息
如果都在本机测试,使用 IPAddress.Loopback 或 127.0.0.1 即可。
基本上就这些。C# 的 TCP Socket 编程接口设计清晰,配合 TcpListener 和 TcpClient,能快速实现稳定通信。不复杂但容易忽略异常处理和资源释放。
以上就是C# 如何实现一个简单的 TCP Socket 通信_C# TCP Socket 通信实现教程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1441643.html
微信扫一扫
支付宝扫一扫