0
現在nettyを学習しようとしていて、何も動作しません...): どうにかして、サーバーはクライアントからメッセージを受信しません。私は絶対に経験がないので、私はネットで動作するアプリケーションを構築したことはないことを覚えておいてください。誰かが私を助けることができれば嬉しいです。 私はたくさんのコードを掲載していますが、残念ですが、この質問をどのように小さくするかわかりません。私はイムは、いくつかの基本的な理解が欠けて考えるサーバーはメッセージを受信しません
@Override public void run() {
new ServerBootstrap().
group(new NioEventLoopGroup(1), new NioEventLoopGroup()).
channel(NioServerSocketChannel.class).
handler(new LoggingHandler(LogLevel.INFO)).
childHandler(new ChannelInitializer<SocketChannel>() {
@Override protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(
new ObjectEncoder(),
new ObjectDecoder(ClassResolvers.cacheDisabled(null)),
new ChannelInboundHandlerAdapter() {
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
System.out.println("server received a message!");
}
});
}
}).bind(40401);
}
:これは私のクライアントである
new Server().run();
Client client = new Client();
client.run();
while(true){
System.out.println("sending message to server...");
client.sendMessage(new PacketPing(System.currentTimeMillis()));
Thread.sleep(1000);
}
:
だから、これは私のコードです
private Channel channel;
@Override public void run() {
ChannelFuture future = new Bootstrap().
group(new NioEventLoopGroup()).
channel(NioSocketChannel.class).
handler(new ChannelInitializer<SocketChannel>() {
@Override protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(
new ObjectEncoder(),
new ObjectDecoder(ClassResolvers.cacheDisabled(null)),
new ChannelInboundHandlerAdapter() {
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
System.out.println("client received message!");
}
});
}
}).connect("localhost", 40401);
try {
future.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
this.channel = future.channel();
}
public void sendMessage(Object msg) {
channel.writeAndFlush(msg);
}
そして、これは私のサーバーです私はどこでデバッグを開始するのか分かりません。コードネッティーに精通している誰もがこれに答えるすることは(簡単にする必要がありますので、非常に単純です:! おかげで@everybody
コンソール:
Nov 18, 2016 7:47:58 PM io.netty.handler.logging.LoggingHandler channelRegistered
INFORMATION: [id: 0x52b5b879] REGISTERED
Nov 18, 2016 7:47:58 PM io.netty.handler.logging.LoggingHandler bind
INFORMATION: [id: 0x52b5b879] BIND: 0.0.0.0/0.0.0.0:40401
Nov 18, 2016 7:47:58 PM io.netty.handler.logging.LoggingHandler channelActive
INFORMATION: [id: 0x52b5b879, L:/0:0:0:0:0:0:0:0:40401] ACTIVE
Nov 18, 2016 7:47:58 PM io.netty.handler.logging.LoggingHandler channelRead
INFORMATION: [id: 0x52b5b879, L:/0:0:0:0:0:0:0:0:40401] RECEIVED: [id: 0xdda43b4c, L:/127.0.0.1:40401 - R:/127.0.0.1:56421]
sending message to server...
sending message to server...
sending message to server...
sending message to server...
sending message to server...
sending message to server...
'writeAndFlush'から得られる将来のチャンネルは成功を示していますか? – Ferrybig
いいえ、falseを返します...なぜですか? – NyxMC
原因を調べるには' .cause()。printStackTrace() 'を呼び出しますチャネルの未来)をコンソールに出力するようにします – Ferrybig