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 对单个应用程序可以同时打开的文件数量有限制。我电脑上的这个限制似乎是无限的。

>ulimit 
unlimited

这是我的代码。

https://copy.com/9YwpvpScPDEUITQ8

4

1 回答 1

0

使用 .检查ulimit -n和更新它ulimit -n <some high number>

于 2013-07-04T04:40:12.510 回答