1

有时(很少)当我连接到一个正在运行的 com.sun.net.httpserver.HttpServer 实例时,我会收到一条“连接被拒绝”的消息。

有人知道为什么会这样吗?它可以处理的连接数是否有线程限制?我可以增加它吗?谢谢。-r

4

1 回答 1

2

文档

当绑定到地址和端口号时,应用程序还可以指定一个整数 backlog 参数。这表示系统将在内部排队的最大传入 TCP 连接数。连接在等待被 HttpServer 接受时排队。当达到限制时,底层 TCP 实现可能会拒绝(或可能忽略)进一步的连接。设置正确的 backlog 值是在 TCP 层的有效资源使用(不要设置得太高)和允许传入请求的足够吞吐量(不要设置得太低)之间的折衷。

你可能会看到这个。

或者,您是否使用setExecutor()设置了执行程序。默认执行器配置的线程可能比您需要的少,并且适当配置的ThreadPoolExecutor可能会工作。

于 2009-10-29T18:19:07.463 回答