2012-02-29 106 views

回答

0

這是可能的。服務器只是一個Java程序。您可能需要在此程序中創建兩個線程。一個用於處理與客戶端的通信,另一個用於處理與子服務器的通信。 (您需要爲每個子服務器創建線程)。在這個線程中,你可以發送/接收數據到/從客戶端/子服務器。

主服務器的 你主服務器將每個THEAD處理個別子服務器是多線程的。每個線程將有連接到相應子服務器的套接字。通過線程。我的意思是你將在這個線程的run方法中執行所有對subserver的讀/寫操作。

SUB服務器 如果你有一個客戶,那麼你需要創建兩個線程。一個與MainServer通信,另一個與客戶端通信。類似的每個線程將具有相應實體的套接字連接。在多客戶端的情況下,您需要創建多個線程來處理來自特定客戶端的請求。

我們需要使用線程,因爲會有多個子服務器,並在同一時間運行多個客戶端。

+0

現在我的問題儀式是,我不知道如何插座acctually螺紋工作...從我覺得現在是這樣的,它可能有服務器連接到子服務器,但後來我有客戶端連接到子服務器,並希望通過子服務器將數據傳遞給主服務器的......更像是一個代理,但我不知道如何使用插座OBJ從PrintWriter的從子服務器到服務器傳遞數據,因爲有一個從客戶端連接到子服務器 – user1217609 2012-02-29 18:13:12

+0

另一個插座我進一步解釋了它。 – JProgrammer 2012-02-29 18:23:24

+0

有沒有這方面的例子?也許一個簡單的例子?我仍然不能得到線程和套接字之間的鏈接..因爲我不知道如何訪問線程,如果我沒有弄錯線程綁定在一起的套接字?像1臺服務器2客戶端。服務器接受每個客戶端2個客戶端1線程,但是它有1個線程+ 1個客戶端套接字? – user1217609 2012-02-29 18:32:10

0

這絕對有可能。但是,如果您計劃使您的服務器可以從互聯網訪問(而不是本地),則必須在路由器上配置PAT(端口轉發)。雖然我不知道你是否真的需要一個子服務器?如果子服務器的工作是專門與主服務器通信,則不必將子服務器配置爲「服務器」。您可以使其作爲主服務器的「客戶端」,這更容易。但是,如果您希望子服務器也可以從互聯網訪問,則必須將其配置爲這樣。

鏈接:

Port Forwarding

Java Sockets

+0

我的SUBSERVER的目的是成爲我的CLIENT將數據傳遞給主服務器的代理...更像這樣的結構我想到了... – user1217609 2012-02-29 18:14:28

+0

opps我意外地按了輸入...更喜歡這MAUSTERVER到客戶端客戶端...客戶端發送數據到SUBSERVER併發送到MAINSERVER ..但我不知道如何處理線程和套接字現在導致我已經寫了程序,我不知道如何訪問線程對於插座.. – user1217609 2012-02-29 18:16:00

+0

線程是一個相當困難的課題。看看「Java套接字」鏈接。支持* one *客戶端應該很簡單,但如果您的服務器需要多客戶端支持,那麼您一定需要密切關注線程。 – collinjsimpson 2012-02-29 18:35:21