public final SocketAddress getRemoteAddress() throws IOException { if (!isOpen()) throw new ClosedChannelException(); return remoteAddress; } @Override public final AsynchronousSocketChannel shutdownInput() throws IOException { try { begin(); if (remoteAddress == null) throw new NotYetConnectedException(); synchronized (readLock) { if (!readShutdown) { Net.shutdown(fd, Net.SHUT_RD); readShutdown = true; } } } finally { end(); } return this; } @Override public final AsynchronousSocketChannel shutdownOutput() throws IOException { try { begin(); if (remoteAddress == null) throw new NotYetConnectedException(); synchronized (writeLock) { if (!writeShutdown) { Net.shutdown(fd, Net.SHUT_WR); writeShutdown = true; } } } finally { end(); } return this; } @Override public final String toString() { StringBuilder sb = new StringBuilder(); sb.append(this.getClass().getName()); sb.append('['); synchronized (stateLock) { if (!isOpen()) { sb.append("closed"); } else { switch (state) { case ST_UNCONNECTED: sb.append("unconnected"); break; case ST_PENDING: sb.append("connection-pending"); break; case ST_CONNECTED: sb.append("connected"); if (readShutdown) sb.append(" ishut"); if (writeShutdown) sb.append(" oshut"); break; } if (localAddress != null) { sb.append(" local="); sb.append(localAddress.toString()); } if (remoteAddress != null) { sb.append(" remote="); sb.append(remoteAddress.toString()); } } } sb.append(']'); return sb.toString(); }}Lines 501–580 of 580. Previous lines
public final SocketAddress getRemoteAddress() throws IOException { if (!isOpen()) throw new ClosedChannelException(); return remoteAddress; } @Override public final AsynchronousSocketChannel shutdownInput() throws IOException { try { begin(); if (remoteAddress == null) throw new NotYetConnectedException(); synchronized (readLock) { if (!readShutdown) { Net.shutdown(fd, Net.SHUT_RD); readShutdown = true; } } } finally { end(); } return this; } @Override public final AsynchronousSocketChannel shutdownOutput() throws IOException { try { begin(); if (remoteAddress == null) throw new NotYetConnectedException(); synchronized (writeLock) { if (!writeShutdown) { Net.shutdown(fd, Net.SHUT_WR); writeShutdown = true; } } } finally { end(); } return this; } @Override public final String toString() { StringBuilder sb = new StringBuilder(); sb.append(this.getClass().getName()); sb.append('['); synchronized (stateLock) { if (!isOpen()) { sb.append("closed"); } else { switch (state) { case ST_UNCONNECTED: sb.append("unconnected"); break; case ST_PENDING: sb.append("connection-pending"); break; case ST_CONNECTED: sb.append("connected"); if (readShutdown) sb.append(" ishut"); if (writeShutdown) sb.append(" oshut"); break; } if (localAddress != null) { sb.append(" local="); sb.append(localAddress.toString()); } if (remoteAddress != null) { sb.append(" remote="); sb.append(remoteAddress.toString()); } } } sb.append(']'); return sb.toString(); } }