closes this socket . this operation is idempotent . to be consistent with java socket , the shutdown states of the socket are not changed . this makes it easier to port applications between socket and localsocket . concode_field_sep boolean inputShutdown concode_elem_sep boolean outputShutdown concode_elem_sep FileDescriptor fd concode_elem_sep int SHUT_WR concode_elem_sep State state concode_elem_sep int SHUT_RD concode_elem_sep LocalSocketAddress address concode_field_sep boolean isInputShutdown concode_elem_sep void checkConnected concode_elem_sep LocalSocketAddress getLocalSocketAddress concode_elem_sep boolean isConnected concode_elem_sep void checkOutputNotShutdown concode_elem_sep void poll concode_elem_sep void shutdownOutput concode_elem_sep void listen concode_elem_sep void accept concode_elem_sep void shutdownInput concode_elem_sep void bind concode_elem_sep boolean isClosed concode_elem_sep void checkNotClosed concode_elem_sep void checkInputNotShutdown concode_elem_sep boolean isOutputShutdown concode_elem_sep void socket concode_elem_sep void shutdown concode_elem_sep void connect
void function ( ) { if ( state == State . CLOSED ) { return ; } if ( ! fd . valid ( ) ) { throw new IllegalStateException ( "srini_string" ) ; } close ( fd ) ; if ( fd . valid ( ) ) { throw new IllegalStateException ( "srini_string" ) ; } this . state = State . CLOSED ; }