繁体   English   中英

如何从Netty服务器向套接字客户端发送字符串

[英]How send string from Netty server to socket client

我有一个简单的netty套接字服务器和带有标准套接字实现(没有netty)的简单客户端。 从客户端到服务器,我可以通过PrintWriter toServer = new PrintWriter(client.getOutputStream(), true);发送字符串到PrintWriter toServer = new PrintWriter(client.getOutputStream(), true); 在客户端中,我有BufferedReader fromServer = new BufferedReader(new InputStreamReader(client.getInputStream())); 在服务器端,我有此代码

@Override
protected void channelRead0(ChannelHandlerContext ctx, String message) throws Exception {
  String msg = message;
  String response = "Response from server";
  try {
   System.out.println(msg);
   System.out.flush();
   ctx.writeAndFlush(response);
  } finally {
      ReferenceCountUtil.retain(msg);
  }
}

但是我无法从服务器读取客户端的任何字符串。 如何以正确的方式将字符串从netty发送到客户端? 客户端:

toServer = new PrintWriter(client.getOutputStream(), true);
fromServer = new BufferedReader(new InputStreamReader(client.getInputStream()));

for (int i = 0; i < 6; i++) {
    toServer.println("simple string: " + i);
    if ((line = fromServer.readLine()) != null) {
        System.out.println("Responce from server: " + line);
    }
}

尝试这个:

ctx.channel().writeAndFlush(Unpooled.copiedBuffer(response.getBytes()));

让我知道是否可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM