初涉Delphi Socket编程

来源:互联网 发布:time machine字幕软件 编辑:程序博客网 时间:2024/04/29 18:19


不是第一次接触socket编程了,但以前都是看别人的依葫芦画瓢,也不知道具体的原理。

新的项目,有了新的开始,同时也需要有新的认识。


Delphi 中带有两套TCP Socket组件:

    Indy Socket组件(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket组件(ClientSocket和ServerSocket),

    分别是阻塞式和非阻塞式的方式;

    还有一套开源的非阻塞式的组件ICS(Internet Component Suite)

    【网友说:不是特大型项目,都可以用Indy,Indy可以支持到1000个网络连接左右IOCP+WSAPI  连接能5万 10万都不是问题】

Delphi7之后在面板中看不到了TCP Socket组件,他并没有被抛弃,而是被隐藏了

【我猜测的原因是:非阻塞的出现是Unix支持fork,客户程序和服务器都能够fork新的进程,并启动这些进程,从而能够很方便地使用阻塞式Socket。而Windows 3.x既不支持fork也不支持多线程,当使用阻塞式Socket时,用户界面就会被“锁住”而无法响应用户输入。

而Delphi7的时代,Windows已经有了很大的改进,对于多线程的支持已经很好了,使用非阻塞式的难度明显比阻塞式的大多了。当然了具体的选择还是需要根据实际的项目需求确定的。】

激活的方式:

    在Component下选Install Packages
    加入在/Bin/dclsockets*0.bpl.;

 XE系列,安装后只有在VCL Form中能被看到。