gpt4 book ai didi

java - netty - 我可以引导一个新客户端来连接 channel 处理程序中的其他服务器吗?

转载 作者:行者123 更新时间:2023-12-01 05:21:06 24 4
gpt4 key购买 nike

我是否可以在客户端 channel 处理程序中动态构建客户端/服务器?如果可能的话,你如何实现它? (我已经尝试过这个,但在使用 bootstrap.connect 连接时构建子客户端失败,另一方面,我已经成功构建了与特定端口绑定(bind)的子服务器,不知道为什么)

是否有更好的方法来实现上述功能,使客户端与其他服务器/客户端动态通信,而不是与它首先连接的服务器通信,但保持连接处于 Activity 状态?

补充:一些代码如下:

public class FileClientHandler extends SimpleChannelUpstreamHandler {   

.....

public void getFile(final String filename, final String md5){
// Configure the client.
ClientBootstrap bootstrap = new ClientBootstrap(
new NioClientSocketChannelFactory(
Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));

// Configure the pipeline factory.
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
public ChannelPipeline getPipeline() throws Exception {
return Channels.pipeline( new FileClientGetFileHandler(filename,md5) );
}
});

// Start the connection attempt.
ChannelFuture future = bootstrap.connect(new InetSocketAddress(Ip, Port));

// Wait until the connection attempt succeeds or fails.
future.awaitUninterruptibly().getChannel();

if (!future.isSuccess()) {
System.out.print("Connect Failure!\n");
future.getCause().printStackTrace();
bootstrap.releaseExternalResources();
return;
}

// Wait until the connection is closed or the connection attempt fails.
future.getChannel().getCloseFuture().awaitUninterruptibly();

// Shut down thread pools to exit.
bootstrap.releaseExternalResources();
}

......

}

future.awaitUninterruptically().getChannel(); 处失败,如果删除它,在连接处仍然失败:!future.isSuccess()==true>

最佳答案

关于java - netty - 我可以引导一个新客户端来连接 channel 处理程序中的其他服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com