当前位置: 首页 > 知识库问答 >
问题:

java.net网站。BindException:无法分配请求的地址java.io。IOException:打开的文件太多

汪弘毅
2023-03-14

我得到了异常java.net。BindException:无法分配请求的地址,如果发生此异常,我会尝试使用相同的端口和主机再次绑定它。但在尝试绑定之后,我得到了java.io。IOException:打开的文件太多。

堆栈跟踪:

    java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.SctpServerChannelImpl.bind(SctpServerChannelImpl.java:109)
    at com.sun.nio.sctp.SctpServerChannel.bind(SctpServerChannel.java:184).

在一些失败之后:

    java.io.IOException: Too many open files
    at sun.nio.ch.IOUtil.makePipe(Native Method)
    at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:65)
    at sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:36)
    at java.nio.channels.Selector.open(Selector.java:227)

当java.net时,FD是否可能保持打开状态。BindException:无法分配请求的地址?

共有3个答案

阎卓
2023-03-14

也许IP问题 /etc/hosts改成

南门洋
2023-03-14

当 java.net.Bind 异常: 无法分配请求的添加时,FD 是否有可能保持打开状态?

对你必须自己关闭插座。很明显你有插座泄漏。

我看不出重试绑定有什么意义。它仍然会失败。可能最初的绑定问题也是由于套接字泄漏。

贺栋
2023-03-14

这通常是操作系统级别的问题。考虑增加可以打开的文件数量。在 Linux 上,设置在 /etc/security/limits.conf 中:

UID软无文件4096 UID硬无文件10240

 类似资料:
  • 部署到Heroku后,Spark服务器崩溃,并出现以下异常。我的Procfile如下所示: 据我所知,Heroku每次部署应用程序时都会分配一个新的端口。但是,我从 Heroku 设置的环境变量中获取 PORT 值,那么为什么我无法获得此请求的地址? 编辑:这些是我将Procfile更正为-Dserver.port=$PORT后的错误日志。 这是在添加 --端口$PORT后发生的。基本上,我看到错

  • 我正在使用线程每5秒钟通过终端连接。但是我在1天后得到了“java.io.IOException:无法运行程序”/bin/bash“: error=24,打开的文件太多”。 线程程序: 工艺方法: 例外: 我用的是CENT OS。 请朋友们帮助我,如何解决这个问题。

  • 问题内容: 我想在我的应用程序中使用低端口(Spring Web上的SNMP陷阱接收器+ Tomcat7)。正如我之前在此线程将低端口绑定到Ubuntu Server上的Java程序中所告诉的那样,我收到了错误权限被拒绝。然后,我将tomcat7用户组更改为root。但是之后,我得到了java.net.BindException:无法分配请求的地址错误。对于我尝试的每个端口(低端口或高端口),我总

  • 我想在我的应用程序中使用低端口(SpringwebTomcat7上的SNMP陷阱接收器)。正如我之前在Ubuntu服务器上的这个线程Binding Low Port to Java Program中所说的,我得到了一个错误Permission denied。然后我将tomcat7用户组更改为root。但在那之后,我得到了java.net。BindException:无法分配请求的地址错误。对于我尝

  • 问题内容: 我使用多个文件来执行一些文件I / O(写入19个文件,确实如此)。写他们几百次后,我得到了。但实际上我一次只能打开几个文件。这里有什么问题?我可以验证写入是否成功。 问题答案: 在Linux和其他UNIX /类似UNIX的平台上,操作系统对进程在任何给定时间可能具有的打开文件描述符的数量进行了限制。在过去,此限制曾经是硬接线1,并且相对较小。如今,它要大得多(几百/千),并且受“软”

  • 问题内容: 当我尝试设置套接字服务器时,出现错误消息: 整个代码是最简单的: 我100%确定端口已转发,Windows防火墙已关闭。什么都不会阻塞端口9999。还有什么会出错? 问题答案: 正如其他人指出的那样,这很可能与使用port的另一个进程有关。在Windows上,运行以下命令: 并且它应该列出任何阻塞端口的内容。当然,您必须去手动在Task Manager中杀死那些程序。如果仍然无法解决问