2012-11-05 151 views
1

服務器是多線程的,而不是爲每個請求創建一個套接字連接,我想維護一個套接字連接池?如果一個客戶端已經完成了它的工作,那麼我想要恢復連接並用於另一個客戶端,有人可以向我解釋如何執行socket連接池嗎?套接字連接池

+1

插座不能這樣工作;你不能在不同的客戶端之間共享套接字連接。 – dnault

+1

你是指每個客戶的線程?這就是你應該問的 – thedayofcondor

+0

@thedayofcondor ..感謝您的評論! 其實我必須開發一個客戶端Socket,它連接到遠程的服務器套接字,服務器套接字有一個Login命令來訪問和聽取信息來維持會話,現在我的問題實際上就是,我必須去的 1)connect to socket - >登錄 - >處理我的命令 - >註銷 - >客戶端套接字關閉。 2)一直到我的應用程序連接到服務器 - >登錄 - >維護會話使用心跳 - >處理命令,每當請求來,直到我的應用程序運行 –

回答

0

我不知道你的努力來建立,但如果它的TCP服務器應該比你看看兩者之一:

  • 灰熊

    • Netty的
    • 米娜

    上面的大部分處理線程池和長期連接爲你(我不知道你是什麼意思的套接字池)。我強烈建議你不要重新實施車輪,直到你看到一些好車輪;)。

  • +0

    感謝您的評論!其實我必須開發一個客戶端套接字連接到遠程服務器套接字,服務器套接字有一個登錄命令來訪問和聽取維護會話,現在我的問題實際上是,我必須去的1)連接到套接字 - >登錄 - >處理我的命令 - >註銷 - >客戶端套接字關閉。 2)一生一次,直到我的應用程序連接到服務器 - >登錄 - >維護會話使用心跳 - >處理命令,每當請求來到,直到我的應用程序運行 –

    0

    這個問題沒有意義。入站連接通過accept()函數向您發送作爲新套接字。你沒有任何機會將它們集中起來。

    0

    這完全取決於客戶端以及它是如何編碼的。客戶端應該打開一個套接字,並通過該套接字推送多個事務。從服務器執行此操作的功能並不多,也不認爲這是一個很好的嘗試。

    Registers Yusuf