C# 实时读取 TCP 服务器数据 - 完整代码示例
使用 C# 连接 TCP 服务器并实时读取服务器数据,可以使用一个循环来实现。以下代码示例展示了如何连接服务器、获取网络流并持续读取数据:
using System;
using System.Net.Sockets;
using System.Text;
public class TcpClientExample
{
public static void Main()
{
// 连接到服务器
TcpClient client = new TcpClient('127.0.0.1', 8888);
// 获取网络流
NetworkStream stream = client.GetStream();
// 循环读取服务器数据
while (true)
{
// 如果网络流可读取
if (stream.CanRead)
{
// 创建缓冲区
byte[] buffer = new byte[1024];
// 读取数据
int bytesRead = stream.Read(buffer, 0, buffer.Length);
// 将数据转换成字符串
string data = Encoding.ASCII.GetString(buffer, 0, bytesRead);
// 输出数据
Console.WriteLine('Received: ' + data);
}
}
}
}
代码解释:
- 连接服务器: 使用
TcpClient类连接到指定 IP 地址和端口的服务器。 - 获取网络流: 使用
GetStream()方法获取连接的网络流。 - 循环读取数据: 使用
while循环持续读取网络流中的数据。 - 判断网络流是否可读: 使用
CanRead属性判断网络流是否可以读取数据。 - 创建缓冲区: 创建一个字节数组
buffer来存储读取的数据。 - 读取数据: 使用
Read()方法从网络流中读取数据到buffer中。 - 数据转换: 使用
Encoding.ASCII.GetString()将字节数组转换为字符串。 - 输出数据: 使用
Console.WriteLine()输出接收到的数据。
注意:
- 此代码会持续运行直到程序关闭或网络连接断开。
- 你可以根据实际需求添加条件语句来控制循环的停止。
- 在实际应用中,需要根据数据格式进行相应的解析和处理。
- 为了提高效率,可以考虑使用异步读取数据的方式。
希望此示例可以帮助你更好地理解如何使用 C# 连接 TCP 服务器并实时读取数据。
原文地址: https://www.cveoy.top/t/topic/ozPi 著作权归作者所有。请勿转载和采集!