2012-07-06 133 views
-2

我試圖讓它像一個Skype即時消息器,我的想法是讓一個服務器爲客戶端處理多個連接。我現在有一個朋友列表等,但現在我想爲服務器和客戶端創建線程來處理對話。問題是我需要爲每個對話在服務器和一個客戶端之間建立多個連接(我認爲)。但我不認爲這是可能的。有人有另一種方法來做到這一點,或者也許有辦法在服務器和客戶端之間建立多個連接?java在服務器和一個客戶端之間的多個連接

謝謝你幫我出

PS:英語不是我的主要語言,所以請原諒我的語法。

+2

你試過什麼?爲什麼*你認爲每個'call'都不可能有一個sochet? – home 2012-07-06 15:16:21

回答

1

我認爲最好的是,你總是從每個客戶端到服務器建立一個tcp連接,這樣,如果你的客戶端在防火牆或路由器後面,連接可以建立。

然後你需要定義一個帶有控制消息的協議,比如「用...創建新對話」。服務器可以爲每個新對話生成一個GUID,然後客戶端可以通過一個連接接收和發送消息並與對話ID保持一致。

更新:

要回答原來的問題:是的,你可以讓客戶端和服務器之間的多個連接。每個連接都應該從客戶端打開到服務器端口,一旦建立,每個端口都會有不同的端口。你可以創建一個線程來處理每個連接,或者讓線程處理所有使用非阻塞調用的連接。

+0

好吧,我的目標是在一個端口上完成所有操作,但是要感謝協議消息的建議!會使用它 – user1507128 2012-07-07 09:09:20

相關問題