public class NettyClinet {
private String host;
private int port;
private static Channel channel;
public NettyClinet(){
}
public NettyClinet(String host, int port) {
this.host = host;
this.port = port;
}
public void start() {
EventLoopGroup group = new NioEventLoopGroup();
try {
Bootstrap b = new Bootstrap();
b.group(group)
.option(ChannelOption.SO_KEEPALIVE,true)
.channel(NioSocketChannel.class)
.handler(new ClientChannelInitializer(host,port));
ChannelFuture f = b.connect(host,port).sync();
//断线重连
f.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture channelFuture) throws Exception {
if (!channelFuture.isSuccess()) {
final EventLoop loop = channelFuture.channel().eventLoop();
loop.schedule(new Runnable() {
@Override
public void run() {
log.error("服务端链接不上,开始重连操作...");
System.err.println("服务端链接不上,开始重连操作...");
start();
}
}, 1L, TimeUnit.SECONDS);
} else {
channel = channelFuture.channel();
log.info("服务端链接成功...");
System.err.println("服务端链接成功...");
}
}
});
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
new NettyClinet ("127.0.0.1",8000).start();
}
}
netty客户端同步连接NettyClinet
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 使用netty实现多客户端连接并且互相通信的需求: 1.服务器启动,n多个客户端与服务器进行连接,一个客户端上线之...
- 1.当客户端开启socket链接服务端的时候,服务器端就会触发accept事件其中accept和read都是调用u...
- 前言 上一章节《Netty 源码解析系列-服务端启动流程解析》 我们完成了服务端启动,那么服务端启动完成...
- 1.首先客户端将我们的NioSocketChannel当成一个属性注册到多路复用器selector上,得到的Sel...
- netty的例子 服务端: 服务端处理器: 验证: 栗子2: server handler: client: cl...