我正在尝试使用java从一台计算机创建10000个并发udp流。它适用于大约3000-4000但后来它给我以下错误。
java.net.SocketException: Too many open files
at java.net.PlainDatagramSocketImpl.datagramSocketCreate(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.create(AbstractPlainDatagramSocketImpl.java:82)
at java.net.DatagramSocket.createImpl(DatagramSocket.java:322)
at java.net.DatagramSocket.<init>(DatagramSocket.java:179)
at SendThread.<init>(SendThread.java:20)
at Client.main(Client.java:9)
在查找同一错误的其他几个链接后,似乎linux对单个应用程序可以同时打开的文件数量有限制。我的电脑上的限制似乎无限制。
>ulimit
unlimited
这是我的代码。
答案 0 :(得分:0)
检查ulimit -n
并使用ulimit -n <some high number>
更新。