目录
写在前面
TcpListener 和 TcpClient 是在 System.Net.Sockets.Socket 类的基础上做的进一步封装,使用 GetStream 方法返回网络流,由于是以流的方式读取数据,所以在使用过程中更容易有粘包和分包的问题,还不如直接使用Socket类来的方便。
代码实现
服务端代码
static void TcpListenerTest()
{
Console.WriteLine("TcpListener Server");
var tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 9090);
tcpListener.Start();
Console.WriteLine("TcpListener Start");
var task = Task.Run(() =>
{
while (true)
{
var tcpClient = tcpListener.AcceptTcpClient();
var buffer = new byte[tcpClient.ReceiveBufferSize];
var stream = tcpClient.GetStream();
stream.Read(buffer, 0, buffer.Length);
stream.Close();
tcpClient.Close();

本文详细介绍了C#中TcpListener和TcpClient的使用,讨论了它们在处理网络流时可能出现的粘包问题,并展示了服务端如何通过心跳间隔维持连接。客户端发送消息后,服务器能正确接收并打印出来。
2829

被折叠的 条评论
为什么被折叠?



