0

我有一个java应用程序运行在应用程序容器上,目前我遇到一个错误centos 6.3tomcat 7java.io.socketexception Maximum number of datagram sockets reached

我们使用MulticastSocket类来发送消息。发生此错误时,我使用以下UDP socket命令检查当前服务器计数:ss -s

总计:212(内核 248) TCP:70(estab 15,关闭 44,孤立 0,synrecv 0,timewait 40/0),端口 22

Transport  Total     IP        IPv6
*          248       -         -        
RAW        0         0         0        
UDP        40        40        0        
TCP        26        26        0        
INET       66        66        0        
FRAG       0         0         0        

我还检查了

ulimits -n

默认设置是32768,似乎 UDP 套接字计数不超过最大计数。

对这个错误有什么想法吗?

4

1 回答 1

1

我们使用MulticastSocket类来发送消息。

为什么?您只需要MulticastSocket接收播。

显然你正在泄漏MulticastSockets.大概你正在为每条消息创建一个新的并且永远不会关闭它。

于 2013-04-22T10:26:26.050 回答