gpt4 book ai didi

java - Netty 使用标准套接字获取响应

转载 作者:行者123 更新时间:2023-11-30 17:28:59 24 4
gpt4 key购买 nike

是否可以将 Netty 服务器(ServerBootstrap)的响应作为客户端发送到标准 Java 套接字?

我正在尝试等待结果,但没有成功。

服务器:

EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 100)
.handler(new LoggingHandler(LogLevel.DEBUG))
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new ResponseHandler());
}
});

ChannelFuture channelFuture = serverBootstrap.bind(Configuration.serverPort).sync();
channelFuture.channel().closeFuture().sync();
}
finally {
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}

处理程序:

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
ctx.write(msg);
ctx.flush();
}

客户:

Socket socket = new Socket(this.host, this.port);
socket.setKeepAlive(true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream output = new PrintStream(socket.getOutputStream());
output.write("Test");

int response;
while ((response = in.read()) != -1) {
System.out.println(response);
}

最佳答案

我认为你的问题是“你需要在服务器和客户端机器上使用 Netty 吗?”不,你不知道。 Netty 只是标准网络之上的一个抽象(尽管非常聪明和复杂)(类似于 JDK 中包含的网络框架 - 我认为这就是您所说的标准 java 套接字的意思)。

您在服务器端获取channelRead以查看任何内容时遇到问题吗?

您使用的 Netty API 版本是什么(3、4 或 5)——这决定了您使用什么“读取”方法?

可能还需要显示 ServerBootstrap 的代码(包括管道初始值设定项),以便了解问题可能出在哪里。

关于java - Netty 使用标准套接字获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851476/

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