delphi 7的中 TIdTCPClient组件ReadLn超时不能用怎么解决?

tjs_125 2012-04-23 11:59:53
delphi 7的中TCP 编程的 TIdTCPClient 组件 ReadLn 方法的超时参数无效怎么解决?
大家在delphi 7中 TCP 编程一般用什么控件比较好?推荐的时候能不能提供些使用介绍和源码?
...全文
320 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjs_125 2012-05-02
  • 打赏
  • 举报
回复
delphi 7自带的Indy是v9.0.10版本的,在v9.0.18版本中已经解决了TIdTCPClient 组件 ReadLn 方法的超时参数无效这个问题。
查看delphi 7中Indy版本的方法:打开delphi 7,在窗口随便放置一个Indy组件,然后再组件上点右键,第一个就是版本信息了。

Indy v9.0.18下载地址:http://www.indyproject.org/Sockets/Download/files/Indy9.en.aspx

升级Indy的方法:
1、卸载旧的版本,Component -> Install packages...在Design packages中找打Internet Direct(Indy)forD7..,选择,然后点击“Remove”卸载。
2、在delphi目录中的Source文件夹中有一个Indy文件夹,将内容全部删除,然后将下载的indy9.0.18_source文件夹内容全部复制进去。
3、安装新版本:File -> open 找到 ...\Borland\Delphi7\Source\indy\dclIndy70.dpk,编译然后安装即可。
4、然后将所有文件复制到delphi目录中的lib文件夹中,覆盖掉原来的文件。即可。
新的版本与旧版本图标有差别,全部是新的样子。

tjs_125 2012-04-25
  • 打赏
  • 举报
回复
up.....
一如当初 2012-04-23
  • 打赏
  • 举报
回复
给你个SVN地址吧
http://svn.overbyte.be:8443/svn/ics/trunk
用户:ics
密码:ics
一如当初 2012-04-23
  • 打赏
  • 举报
回复
可以考虑ICS(Internet Component Suite)控件,这个控件是免费的
其中有个WSocket,挺好的,我正在用
好像也支持D7吧,有DEMO,自己去研究吧
wgzymzx 2012-04-23
  • 打赏
  • 举报
回复
我都这样用的,从来没问题,不过没有用reandln,用的是ReadString

tcpClt.Port := f_ini.ReadInteger('public','port',6000);
tcpClt.Host := f_ini.ReadString('public','ip','127.0.0.1');
PrintMsg(richNote, ' 连接服务器:'+tcpClt.Host+' '+IntToStr(tcpClt.Port));

//连接
tcpClt.Connect(10000);
tcpClt.ReadTimeout := 10000;

//发送数据
tcpClt.Write(buff);
//接收返回数据
buff := tcpClt.ReadString(2);
buff := buff + tcpClt.ReadString(ord(buff[1])*256 + ord(buff[2]));
buff := Byte2Hex(buff);
tjs_125 2012-04-23
  • 打赏
  • 举报
回复
给的地址可以访问,那怎么从哪个网站下载内容啊?

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧