gpt4 book ai didi

Java ServerSocket 多次连接到同一个套接字

转载 作者:行者123 更新时间:2023-11-29 08:50:56 24 4
gpt4 key购买 nike

所以,我不确定这里的问题是什么,但我正在尝试用 Java 创建一个简单的服务器,但是每当客户端连接时(我一直通过 Google Chrome 的本地主机请求连接)一个单一的客户端连接将连接不止一次。 (即每次我通过浏览器连接到我的服务器时,服务器都会打印“用户连接成功”2-5 次。)我不确定主线程如何可能跑回循环顶部并连接到同一个客户不止一次。

...
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;
}
}
}

最佳答案

这是一个解决方法。它可能对您有所帮助。

  • 创建一个 SetMap,其中包含来自服务器的所有已连接 Socket 的哈希码,位于下行

    Socket s = ss.accept();
  • 现在每次有新客户端尝试连接时检查,如果它是同一个Socket,则什么都不做或关闭该套接字。

关于Java ServerSocket 多次连接到同一个套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22720691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com