Netty

客户端发送数据服务器端接收不到的问题解决

客户端发送数据,服务器端始终收不到,结果发现,客户端发送时,最终发送出去的格式应该是ByteBuf格式才行,修改如下:

  1. channel.writeAndFlush(Unpooled.buffer().writeBytes(data.getBytes()));

客户端接收报文不完整的情况

服务端发送的密文长度

image.png

客户端收到的密文被分了三个包

image.png

解决办法

客户端和服务端在Handler之前配置处理符 :::tips 注意:只配置一方不管用,还是会被分包,必须服务端和客户端都配置。 :::

服务端配置

  1. ServerBootstrap b = new ServerBootstrap();
  2. b.option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)); //这行配置比较重要;

image.png

客户端配置

  1. Bootstrap b = new Bootstrap();
  2. b.option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)); //这行配置比较重要;

image.png

结果

客户端成功接收到完整的报文。

Server端发出的密文长度

image.png

Client端接收到的密文长度

image.png