我正在使用带有 Java 的 Netty 来尝试配置 TCP 客户端。到目前为止一切正常,除了我在端口 1050 上连接,但是当我在处理程序的 messageReceived() 方法上调用 messageEvent.getRemoteAddress() 时,我得到了端口 1500。我将端口更改为 1049 但我m 仍然收到 1500。这是 Netty 的问题还是服务器的问题?
我这里的硬件设置是:这个netty客户端运行在Java服务器上,几个门禁设备遍布这里。这些设备充当 tcp 服务器,netty 充当客户端,处理服务器发送的所有内容并回复它们。
tcp 服务器初始化是这样的:
private ChannelFactory fabrica;
private ServerBootstrap bootstrap;
public void iniciarServidorTCP() {
fabrica = new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool());
bootstrap = new ServerBootstrap(fabrica);
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
@Override
public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline pipeline = Channels.pipeline();
pipeline.addLast("decoderDeMensagem", new MensagemDecoderTCP());
pipeline.addLast("handlerGerente", new GerenteTCP());
pipeline.addLast("encoder de mensagem", new MensagemEncoderTCP());
return pipeline;
}
});
bootstrap.setOption("child.tcpNoDelay", true);
bootstrap.setOption("child.reuseAddress", true);
bootstrap.bind(new InetSocketAddress(1050));
}
知道为什么我得到 1500 而不是 1050 吗?会不会是设备的问题?