3
なぜチャネルをクローズしようとしているときに、ChannelClosedExceptionがスローされましたか? はChannel.close()、例外のスタックトレースを閉じる:Netty:ClosedChannelExceptionがチャネルを閉じるとき
java.nio.channels.ClosedChannelException
at org.jboss.netty.channel.socket.nio.NioWorker.cleanUpWriteBuffer(NioWorker.java:645)
at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:601)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:119)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:76)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:60)
at org.jboss.netty.channel.Channels.close(Channels.java:720)
at org.jboss.netty.channel.AbstractChannel.close(AbstractChannel.java:200)
at ru.greencubes.player.PlayerWorkerThread.closeConnection(PlayerWorkerThread.java:107)
at ru.greencubes.player.PlayerWorkerThread.shutDown(PlayerWorkerThread.java:282)
at ru.greencubes.player.NetworkPlayerThread.disconnect(NetworkPlayerThread.java:1289)
at ru.greencubes.player.NetworkPlayerThread.disconnect(NetworkPlayerThread.java:1272)
at ru.greencubes.server.Server.run(Server.java:1590)
at ru.greencubes.server.ServerThread.run(ServerThread.java:12)
私は同じ問題を抱えています。それを閉じる前に残りのバイトがチャネルに書き込まれるようにする方法はありますか?私は 'ch.write(msg);のようなものを持っています。 ch.close(); ' – Dennis
はい... ChannelFutureを使用します。 ch.write(msg).addListener(ChannelFuture.CLOSE); –
CLOSEはChannelFutureに存在しません。 – Dennis