C# TCP 客户端清除上一次返回的数据: 确保接收最新回复
要清除 TCP 服务器上一次返回的数据,可以在客户端代码中添加一个接收数据前的清除操作。一种常见的做法是在接收数据前先清空接收缓冲区,以确保只接收到本次回复的数据。
以下是一个示例代码,展示了如何在 C# TCP 客户端中清除上一次返回的数据:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class TCPSocketClient
{
static void Main(string[] args)
{
try
{
//创建TCP客户端套接字
TcpClient clientSocket = new TcpClient();
//连接服务器
clientSocket.Connect(IPAddress.Parse('127.0.0.1'), 8888);
//发送请求数据
string request = 'Hello, server!';
byte[] requestData = Encoding.ASCII.GetBytes(request);
NetworkStream networkStream = clientSocket.GetStream();
networkStream.Write(requestData, 0, requestData.Length);
//清空接收缓冲区
byte[] receiveData = new byte[clientSocket.ReceiveBufferSize];
networkStream.Read(receiveData, 0, receiveData.Length);
string responseData = Encoding.ASCII.GetString(receiveData);
responseData = responseData.TrimEnd('�'); //去除字符串末尾的空字符
Console.WriteLine('Server response: ' + responseData);
//关闭套接字
networkStream.Close();
clientSocket.Close();
}
catch (Exception ex)
{
Console.WriteLine('Error: ' + ex.ToString());
}
}
}
在上面的代码中,我们在接收数据前先创建一个与接收缓冲区大小相同的字节数组 receiveData,并将其作为参数传递给 networkStream.Read() 方法。这样可以确保接收缓冲区被清空,并且只接收到本次回复的数据。
原文地址: https://www.cveoy.top/t/topic/opgf 著作权归作者所有。请勿转载和采集!