TIdTCPClient控件中文指南(转)

Delphi TIdTCPClient的使用问题 开发环境Delphi10.3.3 使用TIdTCPClient写了一个客户端小例子,使用网络调试助手作为服务端(设置接收到客户端信息会自动返回数据)。 通讯模式:短连接。客户端连接--发送---等待数据---接收---断开。此例子中客户端不知道返回信息长度是多少。 问题:由于不确定服务端返回数据多少,所以使用Socket.ReadBytes(dat,-1,False); -1:表示一直读取直到超时。本以为像ClientSocket那样有多少数据就能读到多少,结果试验了不同长度的数据,读取到的长度也不一 阅读详情
 
2008/05/24 06:37 P.M.
IdTCPClient

该控件包装了一个完整的TCP客户端。该客户端包括sock支持。该控件是以下客户端控件的父类:

TIdDayTime, TIdEcho, TIdFinger, TIdFTP, TIdGopher, TIdHTTP, TIdNNTP, TIdPOP3, TIdQUOTD,

TIdSMTP, TIdTelnet, and TIdWhois。

属性
property BoundIP: string;
客户端使用的IP地址。

property BoundPort: Integer;
当前连接的本地端口号。

property BoundPortMax: Integer;
当前连接时可以使用的最大本地端口号。

property BoundPortMin: Integer;
当前连接可以使用的最小本地端口号。

property Host: string;
远程主机名。可以是IP地址,也可以是域名。

property Port: integer;
远程主机端口号。

property Intercept: TIdConnectionIntercept;
对连接进行读写操作时插入的中途截取者(插件)。

property IOHandler: TIdIOHandler;
发送和接受数据时的输入输出源(插件)。

property MaxLineAction: TIdMaxLineAction;
当读数据时已经到了最大缓冲区长度时触发的动作(事件处理器)。

property MaxLineLength: Integer;
读取数据时最大缓冲区长度(字节数)。

property ReadTimeout: Integer;
读取数据时的超时事件,单位毫秒。

property Socket: TIdIOHandlerSocket;
连接时所用的socket。

方法
procedure Connect(const ATimeout: Integer = IdTimeoutDefault); virtual;
打开客户端连接。

function ConnectAndGetAll: string; virtual;
打开客户端连接并获取所有的数据。

function AllData: string; virtual;
得到连接中所有的数据。

procedure CancelWriteBuffer;
停止写入数据。

procedure Capture(ADest: TStream; const ADelim: string = '.'; const AIsRFCMessage: Boolean =

True); overload;
procedure Capture(ADest: TStream; out VLineCount: Integer; const ADelim: string = '.'; const

AIsRFCMessage: Boolean = True); overload;
procedure Capture(ADest: TStrings; const ADelim: string = '.'; const AIsRFCMessage: Boolean

= True); overload;
procedure Capture(ADest: TStrings; out VLineCount: Integer; const ADelim: string = '.';

const AIsRFCMessage: Boolean = True); overload;
将连接中的数据读取到特殊的对象中去。

procedure CheckForDisconnect(const ARaiseExceptionIfDisconnected: boolean = true;
const AIgnoreBuffer: boolean = false); virtual;
决定是否关闭连接。

procedure CheckForGracefulDisconnect(const ARaiseExceptionIfDisconnected: Boolean = True);

virtual;
决定是否正常地关闭连接。
function CheckResponse(const AResponse: SmallInt; const AAllowedResponses: array
of SmallInt): SmallInt; virtual;
检查允许的响应中的合法的响应。

procedure ClearWriteBuffer;
清除写缓冲区。

procedure CloseWriteBuffer;
关闭写缓冲区。

function Connected: Boolean; virtual;
当前连接是否可用。

function CurrentReadBuffer: string;
从协议栈中更新缓冲区。

procedure Disconnect; virtual;
关闭连接。

procedure FlushWriteBuffer(const AByteCount: Integer = -1);
写入缓存的数据,并清除写缓冲区。

procedure ReadBuffer(var ABuffer; const AByteCount: Longint);
从读取缓冲区中读取数据。

procedure Write(const AOut: string); virtual;
向连接写入数据。

procedure WriteBuffer(const ABuffer; AByteCount: Longint; const AWriteNow: Boolean = False);
向当前连接写入缓冲数据。

procedure WriteStream(AStream: TStream; const AAll: Boolean = True; const AWriteByteCount:

Boolean = False; const ASize: Integer = 0); virtual;
向当前连接写入流数据。

procedure ReadStream(AStream: TStream; AByteCount: LongInt = -1; const AReadUntilDisconnect:

boolean = false);
从当前连接中读取流数据


转自:http://hi.baidu.com/delphi_fans/blog/item/373f16f2147ee416b07ec596.html

Delphi简单TCP聊天程序 首先上截图 最近有点无聊,于是将以前写到一半的聊天程序拿出来改进了一下。 Delphi自带两个控件:TIdTCPServer, tIdTCPClient。顾名思义,一个是服务器端用的,另一个是客户端用的。程序主要思路如下,客户端程序开始运行时与服务器端建立连接,用户登录时 阅读详情

相关推荐

大彩串口屏+LUA避坑指南:从Flash读写到控件状态配置的5个常见问题

本文针对大彩串口屏的LUA脚本开发,深度剖析了Flash数据存储与控件状态配置中的5个常见陷阱。重点讲解了如何通过标志位安全初始化Flash、正确处理多字节数据换,以及如何精准配置按钮与文本控件的状态与事件响应,帮助开发者提升开发效率与代码可靠性。

weixin_27945229的博客 207

DELPHI TIdTCPClient,TIdTCPServer,SOCKET通讯小例子

SERVER: unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, Sockets, StdCtrls, IdBaseComponent, IdComponent,  IdTCPConnection, IdTCPC

的专栏 1万+

为什么你的Mac蓝牙总断连?深入解析硬件干扰与系统设置避坑

本文深入解析Mac蓝牙频繁断连的原因,包括硬件干扰(如WiFi同频干扰、USB设备电磁干扰)和系统设置问题,并提供详细的优化方案和诊断工具(如blueutil)使用指南,帮助用户有效解决蓝牙稳定性问题。

ik67890123的博客 650

2、弄通TIdTCPClient

第一:TIdTCPClient是何物?从下图可以看出,它是Delphi自带的Indy组件之一:第二,明白了TIdTCPClient是何物,接下来应当明白它的用法:

fym_wlll的专栏_delphi学习之路 1424

Delphi实例-IdTCPServer和IdTCPClient的使用(支持文件发送)

//Use IdContext,IdGlobal这两个单元 //不能使用string类型,在分存分配时会出错的。 unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX...

Delphi开发局QQ群:32422310 6370

【原创】delphi 7中TIdTCPClient 组件ReadLn方法的超时参数无效的升级解决办法

delphi 7自带的Indy是v9.0.10版本的,在此版本中,TIdTCPClient 组件 ReadLn 方法的超时参数无效,在v9.0.18版本中已经解决了这个问题。 查看delphi 7中Indy版本的方法:打开delphi 7,在窗口随便放置一个Indy组件,然后再组件上点右键,第一个就是版本信息了。Indy v9.0.18下载地址: http://www.indyproject....

weixin_30470643的博客 503

C++Builder 5项目实战:从经典VCL开发到现代化重构指南

可视化组件库(VCL)作为高效的桌面应用开发框架,通过基于属性的组件化模型,实现了界面快速构建与业务逻辑的分离。其核心原理在于将UI元素封装为独立对象,通过事件驱动机制响应用户交互,在提升开发效率的同时,保持了底层C++代码的可控性。这一技术价值体现在能够大幅缩短从原型到产品的开发周期,特别适合需要快速迭代的工业控制、数据采集等场景。本文以经典著作《C++Builder 5编程实战》中的项目为例,深入探讨如何将基于BDE、Indy等传统组件的遗留系统,迁移至FireDAC、GDI+等现代技术栈,并解决多线程

weixin_30596023的博客 397

Delphi 局域网点对点文件传输(IdTcpClient控件)

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, ScktComp, IdTCPServer, IdBaseComp...

weixin_34082695的博客 533

delphi idtcpserver&idtcpclient 演示

{----------------------------------------------------------------------  Unit Name: sUnit  Author:    Mats Asplund, 2001-11-09  Purpose:   Indy client/server示例, 服务器部分 -----------------------------

世界末日BLOG 1342

Delphi TIdTCPClient组件

樊伟胜 载于:https://www.cnblogs.com/fanweisheng/p/11385222.html

weixin_30642561的博客 695

Delphi中关于IdTcpServer与IdTcpClient使用心得

这组控件我是在Delphi2007精简版中用到的,之所以用它的起因很简单: 1.IdTcpServer中有Connected和DisConnected事件,易于进行管理,而且当Client非正常关闭也可以用. 2.阻塞方式的通信方式虽然"笨"点,但当一个"笨"办法有效,那它就不是一个笨办法. 3.由于是Tcp方式的连接,可靠性高了很多,而且使得内网连接也可靠了许多..关于组件的一般无错

编程资料收集与共享交流 1万+

TIDTcpClient发送以及接收信息

【代码】用TIDTcpClient发送以及接收信息。

GuoGuoABC 2243

delphi使用IdTCPServer、TIdTCPCli…

delphi使用IdTCPServer、TIdTCPClient收发消息   2012-03-06 14:51:58|  分类: 编程 |  标签: |字号大中小 订阅 unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs

608

(死亡历险)Delphi7 IdTCPClient1,IdTCPServer1客户端向服务端传送大型文件

服务端 unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, IdBaseComponent, IdComponent, IdTCPServer, ExtCtrls, Buttons,   Std

的专栏 3186

【Delphi】断线重连线程

作为tcp客户端,使用TIdTcpClient控件,在与后台服务的交互时,如果出现网络异常,或者后台服务重启,会导致无法保存数据或查询后台数据,这种情况下可以开启断线重连线程,自动连接上后台服务。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 3385

TIdFtp

1几个属性Intercept    是TIdConnectionIntercept类型,允许截取连接的读写操作Passive      决定FTP的连接方式ProxySettings FTP代理连接的可靠设置SystemDesc    描述FTP服务器,难学设置为操作系统名TransferType  决定当前传输文件所使用的文件类型 2几个方法Abort 用于停止F

1036

Abaqus版本选择指南[项目源码]

本文详细分析了Abaqus软件从6.14到2024多个重要版本的功能特点及适用场景,旨在为用户提供科学的版本选择指南。文章首先介绍了Abaqus在有限元分析领域的广泛应用及其版本迭代历程,随后重点解析了各版本的核心功能差异,包括用户界面优化、新增分析工具(如Fe-safe、Tosca、Isight)、材料模型支持、并行计算能力提升等。针对不同用户需求,文章对比了经典稳定版(6.14)与最新版(2024)的优劣势,并推荐2022版本作为平衡功能与稳定性的折中选择。最后提及神工坊仿真平台如何通过云端服务降低软件试用门槛,帮助用户高效选择适配版本。全文通过系统化的功能-需求分析,为工程仿真人员提供了实用的版本决策框架。

上一篇: 关于TIdTCPClient的几种方法
下一篇: delphi中Webbrowser的使用技巧
longma2006
博客等级 码龄20年 22粉丝 26原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值