0

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

これは私のコードです。

https://copy.com/9YwpvpScPDEUITQ8

4

1 に答える 1

0

を使用して確認ulimit -nし、更新しulimit -n <some high number>ます。

于 2013-07-04T04:40:12.510 に答える