From 970d530fbd9af9bec8cdaf72b7c0abf52f610314 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Thu, 10 May 2018 10:25:33 +0800 Subject: [PATCH] --- src/org/redkale/net/ProtocolServer.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/org/redkale/net/ProtocolServer.java b/src/org/redkale/net/ProtocolServer.java index d19c8af0b..85d014304 100644 --- a/src/org/redkale/net/ProtocolServer.java +++ b/src/org/redkale/net/ProtocolServer.java @@ -452,6 +452,7 @@ public abstract class ProtocolServer { if (key == null || !key.isValid()) return; SocketChannel socket = (SocketChannel) key.channel(); NIOTCPAsyncConnection conn = (NIOTCPAsyncConnection) key.attachment(); + if(conn == null) return; if (key.isReadable()) { if (conn.readHandler != null) readOP(key, socket, conn); } else if (key.isWritable()) { @@ -462,9 +463,7 @@ public abstract class ProtocolServer { private void readOP(SelectionKey key, SocketChannel socket, NIOTCPAsyncConnection conn) { try { final int rs = socket.read(conn.readBuffer); - key.interestOps(SelectionKey.OP_CONNECT); //System.out.println(conn + "------readbuf:" + conn.readBuffer + "-------handler:" + conn.readHandler + "-------read: " + rs); - if(conn.readHandler == null) return; context.runAsync(() -> conn.completeRead(rs)); } catch (Throwable t) { context.runAsync(() -> conn.faileRead(t)); @@ -496,7 +495,7 @@ public abstract class ProtocolServer { final ByteBuffer buffer = conn.writeOneBuffer; while (buffer.hasRemaining()) rs += socket.write(buffer); } - key.interestOps(SelectionKey.OP_CONNECT); + key.interestOps(SelectionKey.OP_READ); final int rs0 = rs; //System.out.println(conn + "------buffers:" + conn.writeBuffers + "---onebuf:" + conn.writeOneBuffer + "-------handler:" + conn.writeHandler + "-------write: " + rs); context.runAsync(() -> conn.completeWrite(rs0));