1
我有一個基本的indy TCP服務器和一個客戶端,客戶端向客戶端發送消息到服務器。在服務器上的OnConnect
事件中,客戶端IP被添加到列表框中。我想在客戶端上獲得這個列表框,並且在客戶端連接和斷開連接時更新列表框。我對Indy組件不熟悉,不確定什麼是最好的方法?Delphi Indy局域網聊天
我有一個基本的indy TCP服務器和一個客戶端,客戶端向客戶端發送消息到服務器。在服務器上的OnConnect
事件中,客戶端IP被添加到列表框中。我想在客戶端上獲得這個列表框,並且在客戶端連接和斷開連接時更新列表框。我對Indy組件不熟悉,不確定什麼是最好的方法?Delphi Indy局域網聊天
TCP套接字在兩個方向上工作 - TCP服務器可以在客戶端用於連接到服務器的相同套接字上啓動數據傳輸到客戶端。
因此,要將活動連接列表推送到客戶端,IdTCPServer
只需迭代所有連接並使用Connection.IOHandler.WriteXXX
方法發送信息。廣播連接列表數據和向所有客戶端廣播新的聊天消息沒有技術上的區別。
唯一的要求是數據需要一個指示消息類型的「消息類型指示符」(一個或多個頭字節),可選地後跟消息體長度和數據。
[使用Indy聊天的例子](http://www.devarticles.com/c/a/Delphi-Kylix/Creating-Chat-Application-with-Borland-DelphiIndy-The-Client/)[這是非常簡單地找到它們](https://www.google.com.ua/search?client=opera&q=indy+chat+example&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest) – Abelisto 2013-03-26 04:31:20
使用UDP廣播,盧克! – OnTheFly 2013-03-26 06:05:24
@ user539484這是一個非常好的傳統發佈消息,如「解決問題使用」盧克! :)這不是以任何方式諷刺的,但是當我們不回答「複製和粘貼」而不是「學習」時,這是一個好習慣。 BTW UDP協議有一個大問題:它不假定數據包到達另一個客戶端。所以它必須通過HTTP,FTP(或任何其他更安全的協議)來實現。在我之前的評論中,第二個鏈接解釋瞭如何做到這一點。 –
Abelisto
2013-03-26 07:39:50