初涉Delphi Socket編程


不是第一次接觸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中能被看到。

發佈了81 篇原創文章 · 獲贊 20 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章