我正在尝试使用 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
这是我的代码。