TongxiJi / shadowsocks-java

shadowsocks server base on netty4 , tcp & udp full support,
MIT License
275 stars 77 forks source link

关于启停端口的问题 #10

Closed mokitoo closed 5 years ago

mokitoo commented 5 years ago

目前的代码里面不同的端口是共用一个bossGroup和workerGroup, 如果要给某个端口单独停止掉的话,是不是其他端口也会被shutdown掉?

如果是这样的话,是不是要给每个端口去单独分配bossGroup和workerGroup 呢?

TongxiJi commented 5 years ago

相关端口tcp和udp的bootstrap关闭就行了

mokitoo commented 5 years ago

相关端口tcp和udp的bootstrap关闭就行了

我查下bootstrap里面好像没有关闭的方法啊?

mokitoo commented 5 years ago

给每个端口去单独分配bossGroup和workerGroup,是不是有点浪费内存资源了。。?

TongxiJi commented 5 years ago
    ChannelFuture channelFuture = udpBootstrap.bind(server, port);
    channelFuture.sync();
    channelFuture.channel().closeFuture().sync();
mokitoo commented 5 years ago

channelFuture.channel().closeFuture().sync(); 按照你上面这么写貌似是被阻塞住了

channelFuture.sync().channel().closeFuture().await(200); 这样写是可以的,但是貌似端口并没有被关闭,还是可以正常使用的。。。

mokitoo commented 5 years ago

试了下好像只有 bossGroup.shutdownGracefully().sync() 这种同步的方式关掉端口比较好使

channelFuture.channel().closeFuture().sync(); 这种方式来关的话,死活不往下走了,貌似是被hang住了。。。。。

mokitoo commented 5 years ago

大佬,你有何看法 = =。。。。。

mokitoo commented 5 years ago

channelFuture.channel().close().sync(); 用这种方式就可以惹