-
牛人给看看:大量客户端socket连接netty服务器时出现Connection refused: connect异常50
最近打算用netty写一个服务器,在压力测试时,模拟大量客户端socket连接netty服务器(1w的socket连接),结果有1/4的连接成功,3/4的连接失败,异常如下:
java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.$$YJP$$socketConnect(Native Method) at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:519) at com.towords.client.simulate.SocketClient.run(SocketClient.java:38) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
大家帮忙看看。。。
测试客户端和服务器都是在本机测试,不是dns的问题,现在考虑有没有可能是下面的情况:
1.socket连接有限制,但是1w个连接不算多吧,而且异常信息是Connection refused,看起来像是服务端的问题
2.我机子的配置不高,有没有可能是机子的性能影响netty的boss线程限制客户端的连接呢?
或者是其他的情况??
我机子的配置:
Intel 奔腾 T2390 @1.86GHZ * 2
内存3G
测试服务器的JVM参数:(客户端的参数也基本一样)
-Xmx1200m
-Xms1200m
-XX:NewSize=1g
-XX:MaxNewSize=1g
-XX:SurvivorRatio=8
-XX:PermSize=30m
-XX:MaxPermSize=100m
问题补充:代码和官方的例子基本上一样2012年7月30日 10:33
4个答案 按时间排序 按投票排序
-
确认下客户端与服务端是不是都是使用的NIO,如果都是NIO的话,会产生很多Selector,而Selector在window上的实现是基于连接的,一个selector会占用两个本地端口
2015年3月24日 20:09
-
我今天也碰到这个问题,200个并发socket连接是好使的,没有问题。
当超过300个,就会出现:
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at com.thunisoft.service.Service.query(Service.java:29)
at Test.getPayInfo(Test.java:19)
at Test.run(Test.java:33)2015年1月21日 13:56
-
socket连接是同步的,netty是异步的,client连接上后,nettyServer接收数据,接收完后就将channel关闭了,client connection也就不存在了,就会refused,
怎么保证客户端不变,netty接收数据后保持channel还存活,是个问题,我也在研究!可以看一下channelFuture,可能只能用这个来处理,异步返回后回调2014年3月11日 18:17
相关推荐
客户端发送16进制给服务端,并行实现socket通道活动状态和断开重新连接的功能, 监听接口是否存在数据,如果存在socket客户端发送给socket服务端的实现 随着物联网的发展,随之出现了各种传感器监测数据的实时发送,...
基于tcp通讯,涉及java的netty服务器的推送功能和c++socket的封装以及protobuf在java和c++中的使用。
NettySocket同步数据获取实现,并实现了心跳检测,客户端连接控制,客户端登陆等。 Demo代码
spring boot 整合的netty 实现的socket的demo(包括服务端和客户端是分开的两个项目,导入idea,启动即可)。
里面有android前端和java服务器源码,主要演示socket长连接netty框架的简单使用,想学习socket的同学可以下来看看,
C# Netty 客户端,服务器端 自己研究一才研究出来的与大家分享一下
实现Java服务端和C#客户端联通 Java使用Netty 开发环境为IDEA C#使用DotNetty 开发环境为VS2017 运行时先开启Java服务端 再开启客户端
netty服务器通讯说明: 服务器条件NETTY框架编程: 服务器IP:192.168.2.106 端口8810 数据传输的方式:从串口接收到一条完整的协议数据,计算出数据字节长度,打包成HtAlingProtocol类,并发送给服务器; package ...
具体信息查看我的博客:https://blog.csdn.net/qq_37437983/article/details/86585079
Netty服务器与客户端
基于netty框架编写的socket服务器
Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例示例代码
《Netty进阶之路:跟着案例学Netty》中的案例涵盖了Netty的启动和停止、内存、并发多线程、性能、可靠性、安全等方面,囊括了Netty绝大多数常用的功能及容易让人犯错的地方。在案例的分析过程中,还穿插讲解了Netty...
如果您正在开发 TCP 客户端,或者如果服务器使用 Netty 库,请尝试使用该库。 这个库比原来的库小很多(大约279 KB,经过Proguard优化后会缩小到50-100 KB左右)。 该库是适用于 Android 的 Netty ( ) 项目 v3.8 ...
用Netty实现的Spring-boot-protocol将springboot的WebServer更改为NettyTcpServer,为用户扩展了网络编程的能力。多协议服务器,Springboot协议扩展包,允许单端口提供多协议服务。其中内置多个网络传输(标准与规范...
Netty4长连接、断开重连、心跳检测、Msgpack编码解码 http://blog.csdn.net/giousa/article/details/72846303#t2
从socket到netty,从易到难,稳扎稳打,欢迎交流,java学习者关注:客户端服务端socket通信
Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息示例代码;Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息示例代码;Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息示例代码
Python编写 实现本地通信的简单UDP/TCP的socket连接的客户服务器程序 TCP的是基于Python2.7的 UDP的是基于Python3.7的
一个服务器 一个客户端 客户端发消息给服务器,并有反馈。Eclipse开发。