2016-03-02 21 views
1

我是新來的套接字編程,我有理解serversocket的問題。 假設我們創建這樣一個ServerSocket:具有多個積壓工作的服務器套接字如何工作?

loadbalancerSocket = new ServerSocket(port, 20); 
connection = loadbalancerSocket.accept(); 

再經過一些東西,寫在它的緩衝區的東西:

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream())); 
       writer.write("Hello!"); 
       writer.flush(); 
       writer.close(); 

我的問題是:連接如何瞭解哪些客戶應該得到的迴應服務器?我們的積壓是20,並且20個客戶端可以同時連接到服務器套接字(據我所知)。

回答

2

在您的示例中,第一個連接的客戶端獲取響應。積壓參數並不意味着可以並行連接的客戶端的數量。這是等待接受連接的最大客戶端數量。

ServerSocket沒有連接到任何特定的客戶端。連接的插座是從accept()返回的插座。如果您想要並行處理多個客戶端,則必須多次撥打accept()並分別處理連接。例如,您可以爲每個連接創建一個特殊線程。

accept()通常在循環中調用,並且從accept()返回的新創建的連接套接字通常會傳遞給負責特定客戶端的處理程序。

+0

謝謝:) @Zaboj – user122434

相關問題