有时(很少)当我连接到一个正在运行的 com.sun.net.httpserver.HttpServer 实例时,我会收到一条“连接被拒绝”的消息。
有人知道为什么会这样吗?它可以处理的连接数是否有线程限制?我可以增加它吗?谢谢。-r
有时(很少)当我连接到一个正在运行的 com.sun.net.httpserver.HttpServer 实例时,我会收到一条“连接被拒绝”的消息。
有人知道为什么会这样吗?它可以处理的连接数是否有线程限制?我可以增加它吗?谢谢。-r
从文档:
当绑定到地址和端口号时,应用程序还可以指定一个整数 backlog 参数。这表示系统将在内部排队的最大传入 TCP 连接数。连接在等待被 HttpServer 接受时排队。当达到限制时,底层 TCP 实现可能会拒绝(或可能忽略)进一步的连接。设置正确的 backlog 值是在 TCP 层的有效资源使用(不要设置得太高)和允许传入请求的足够吞吐量(不要设置得太低)之间的折衷。
你可能会看到这个。
或者,您是否使用setExecutor()设置了执行程序。默认执行器配置的线程可能比您需要的少,并且适当配置的ThreadPoolExecutor可能会工作。