所以,我不確定這裏存在什麼問題,但我試圖用Java創建一個簡單的服務器,但是每當客戶端連接時(我一直通過來自Google Chrome的本地主機請求),單個客戶端連接將連接多次。 (即每次我通過瀏覽器連接到我的服務器時,服務器打印出「用戶連接成功」2-5次)。我不確定主線程可能會如何回到循環頂部並連接到同一個客戶不止一次。Java ServerSocket多次連接到同一個套接字
...
ServerSocket ss = new ServerSocket(9876);
while(true)
{
Socket s = ss.accept();
if(count >= queuesize || count >= numproducers)
{
System.out.println("Thread pool has reached it's limit. User access denied.");
//....
//error message sent to user here
//....
}
else
{
System.out.println("User connected successfully");
for(int x=0;x<numproducers;x++)
{
if(threads.get(position).isAvailable())
{
threads.get(x).start(s);
position = (position+1) % numproducers;
break;
}
position = (position+1) % numproducers;
}
}
}
使用遠程登錄表示是否發生,如果你讓自己的客戶端,還是? –
您是否認爲Chrome可能連接多次? (使用lsof檢查,如果您在Linux上,則查看打開的連接。) – vanza
請同時分享客戶端代碼。 – Braj