我在網站上尋找我的問題,但似乎我無法找出解決方案。我有Java非阻塞客戶端服務器程序,它運行良好。我以hereJava客戶端/服務器 - 我們可以使服務器作爲客戶端到另一臺服務器嗎?
爲例,我的問題是,如何將服務器作爲客戶端連接到另一臺服務器?現在,我的服務器將有2個監聽端口等待來自客戶端的連接請求,並且已經完成。現在,我想讓服務器在同一時間可以使用不同的端口連接到另一臺服務器。我不知道我該如何實現這一目標。希望有人能提出一些想法。非常感謝你們!
我在網站上尋找我的問題,但似乎我無法找出解決方案。我有Java非阻塞客戶端服務器程序,它運行良好。我以hereJava客戶端/服務器 - 我們可以使服務器作爲客戶端到另一臺服務器嗎?
爲例,我的問題是,如何將服務器作爲客戶端連接到另一臺服務器?現在,我的服務器將有2個監聽端口等待來自客戶端的連接請求,並且已經完成。現在,我想讓服務器在同一時間可以使用不同的端口連接到另一臺服務器。我不知道我該如何實現這一目標。希望有人能提出一些想法。非常感謝你們!
是的,您可以將客戶端代碼放入服務器。就像您可以從Java Servlet中下載HTML頁面一樣。
您的服務器應該有一個處理來自客戶端的傳入請求的「處理程序」組件。在這個處理程序代碼中,可以將您的客戶端代碼連接到不同的服務器。
我想你會感到困惑的是,傳入連接和傳出連接現在都在相同的poll-the-selector循環中處理,或者?據我所知,您可以將對象附加到選擇器鍵上。用它來表明這不是一個傳入連接,而是一個傳出連接,並且處理所有傳出連接與傳入連接不同。您甚至可能必須以某種方式連接這些傳入和傳出連接,以便知道哪個傳出連接匹配哪個傳入連接。
您是否嘗試使用多線程,我的意思是啓動一個具有客戶端代碼並可以連接到其他服務器的線程? – 2013-03-25 08:25:28
只需創建具有客戶端代碼的另一個線程。而已。 – kaysush 2013-03-25 08:27:09
@Sudhanshu我使用nio,它允許我減少線程。 – UserProg 2013-03-25 08:27:13