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 には、1 つのアプリで同時に開くことができるファイルの数に制限があるようです。私のコンピューターのその制限は無制限のようです。
>ulimit
unlimited
これは私のコードです。