IdTCPClient 接收数据 delphi示例
时间: 2024-10-12 10:11:38 浏览: 45
在Delphi中,`IdTCPClient`是 Indy 库中用于网络通信的一个组件,主要用于TCP客户端操作。它负责连接服务器并接收数据。以下是一个简单的示例,展示了如何创建一个`IdTCPClient`实例、连接到服务器,并处理接收的数据:
```delphi
uses
IndyBase, IdTCPClient, IdTCP protocols;
var
TcpClient: TIdTCPClient;
Buffer: Variant; // 用来存储接收到的数据
begin
try
// 创建 TCP 客户端对象
TcpClient := TIdTCPClient.Create(nil);
// 连接到指定的服务器地址和端口
TcpClient.Host := 'your_server_ip';
TcpClient.Port := your_server_port;
// 开始网络操作,如果连接成功,OnDataEvent 将会被触发
TcpClient.Connect;
// 设置事件处理器,当有数据到达时处理
TcpClient.OnDataEvent := DataArrivedHandler;
// 主循环等待,可以添加其他应用程序逻辑
Application.Run;
except
on E: Exception do
Writeln('Error:', E.Message);
end;
// 数据到达处理函数
procedure DataArrivedHandler(AContext: TIdContext; AStream: TIdSocketStream);
begin
// 使用Variant读取接收到的数据,因为AStream.ReadBuffer直接返回Variant
var ReceivedData := AStream.ReadBuffer(1024); // 可能需要根据实际需求调整缓冲大小
if Assigned(ReceivedData) then
begin
// 在此处处理接收到的数据
Buffer := ReceivedData;
// 省略显示数据或进一步操作...
Writeln('Received data: ', VarToStr(Buffer));
end;
end;
阅读全文