科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件DELPHI超级Internet控件集--INDY

DELPHI超级Internet控件集--INDY

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

你有没有用DELPHI开发Internet程序?是不是常常会烦恼FastNet组件为什么没有源代码...

作者:WinGerK 来源:yesky 2007年11月1日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
更容易在多线程程序里使用,由于阻塞模式的代码可以放在一起,可以很方便的把这些代码包裹在线程里面来使用,而不象异步模式,需要针对不同的事件,设置不同的处理代码。

  为了兼顾简单可靠和高效,INDY是基于阻塞模式工作的。阻塞模式需要等待任务完成才返回,这样,当主线程里调用阻塞任务运行时,程序不能处理用户界面的消息。INDY提供了一个控件TidAntiFreeze来解决这个问题。只要在你的程序里,简单的填加一个TidAntiFreeze控件到任何地方(随便往FORM上放),不需要写任何代码(最多把超时时间改一下),就可以很好的解决用户界面不响应的问题。

  下面有两段示范代码,可以看出INDY控件的程序代码和其他使用异步模式的Internet控件的程序代码相比,是多么的简洁:

代码一:INDY控件的程序代码(IndyClient代表INDY控件的一般形式)

with IndyClient do begin

Connect;

Try

// 在这里写入你的处理代码

finally

Disconnect;

end;

end;

代码二:其他控件的程序代码(SocketComponent代表一般的Internet控件)

procedure TFormMain.TestOnClick(Sender: TComponent);

begin

with SocketComponent do begin

Connect; try

while not Connected do begin

if IsError then begin

Abort;

end;

Application.ProcessMessages;

OutData := 'Data To send';

while length(OutData) > 0 do begin

Application.ProcessMessages;

end;

finally Disconnect; end;

end;

end;

procedure TFormMain.OnConnectError;

begin

IsError := True;

end;

procedure TFormMain.OnRead;

var

i: Integer;

begin

i := SocketComponent.Send(OutData);

OutData := Copy(OutData, i + 1, MaxInt);

end;

关于INDY的简单介绍就到这里了,感兴趣的朋友就去下载一个用吧,你一定会喜欢上它的。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章