发生java.net.ConnectException: Connection refused: connect什么原因?

吉星9527ABC 2010-06-01 08:26:58
我的ServerSocket启动后,客户端同时启动100个以上线程去请求它时,中途经常会有
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
抛出,大家分析下是什么原因呢?
可以设置什么参数来改进吗?
...全文
44601 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2010-06-01
  • 打赏
  • 举报
回复
cmd then enter netstat -a
SDMRauquin 2010-06-01
  • 打赏
  • 举报
回复
Socket的话,建议你尝试去用下mina,可以节约你很多麻烦
fei1703 2010-06-01
  • 打赏
  • 举报
回复
windows系统对端口数量有限制的,好像只有2000多个可用,而且每个端口的可重用时间也是挺长的,好像是2分钟。可以修改注册表改的。
吉星9527ABC 2010-06-01
  • 打赏
  • 举报
回复
有可能,但是我设置了,让客户端
socket.connect(remoteAddr, 60000); //等待建立连接的超时时间为1分钟
有个等待呢
bayougeng 2010-06-01
  • 打赏
  • 举报
回复
是不是你的同步没有做好啊?感觉是你的服务器端口忙不过来。
一台机器启动多线程和多台机器单线程的效果不一样,服务端很可能忙不过来的。
吉星9527ABC 2010-06-01
  • 打赏
  • 举报
回复
socket在服务端是同一个端口啊,同一个端口同时接收多个请求,感觉是有个上限值的问题存在吧?
paullbm 2010-06-01
  • 打赏
  • 举报
回复
补充说明:

随机端口就是说某个程序在一定的允许端口范围内由OS随机分配的一个端口号。尽管计算机端口范围有1--65534个。但许多端口已经预定使用(意思就是说OS在随机分配时不会把它们考虑进去),同时OS是比较小气的,它不会说因为你的程序要用到端口,就把所有剩余可用的端口做为一个随机范围任意挑选!而是只选定一小部分区域进行分配和回收再利用,如此循环。

如果欲详细了解端口知识,你百度一下吧!
paullbm 2010-06-01
  • 打赏
  • 举报
回复
如果端口资源消耗过快,同一个端口在未来得及释放却又被随机分配时,则容易出现你这种问题!!
lizhongyi188 2010-06-01
  • 打赏
  • 举报
回复
连接被重置了!
吉星9527ABC 2010-06-01
  • 打赏
  • 举报
回复
链接数不够 的话怎么解决 客户端和服务端都在本机,只是做下测试,有设置的方法吗?
kokobox 2010-06-01
  • 打赏
  • 举报
回复
连接被重置,可能是非法断链或者链接数不够造成的。检查一下代码吧。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧