java.lang.Object | +--java.net.SocketImpl | +--java.net.PlainSocketImpl
Default Socket Implementation. This implementation does not implement any security checks. Note this class should NOT be public.
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
(package private)
PlainSocketImpl(FileDescriptor fd)
protected void
bind(InetAddress address,
int lport)
protected void
connect(InetAddress address,
int port)
protected void
connect(SocketAddress address,
int timeout)
protected void
connect(String host,
int port)
protected void
create(boolean stream)
private void
doConnect(InetAddress address,
int port,
int timeout)
protected boolean
supportsUrgentData()
getFileDescriptor, getInetAddress, getLocalPort, getPort, getServerSocket, getSocket, reset, setServerSocket, setSocket, toString
int timeout
private int trafficClass
private boolean shut_rd
private boolean shut_wr
private SocketInputStream socketInputStream
private int fdUseCount
private Object fdLock
private boolean closePending
private int CONNECTION_NOT_RESET
private int CONNECTION_RESET_PENDING
private int CONNECTION_RESET
private int resetState
private Object resetLock
public static final int SHUT_RD
public static final int SHUT_WR
PlainSocketImpl()
PlainSocketImpl(FileDescriptor fd)
protected void create(boolean stream) throws IOException
create in class SocketImplstream - if true, create a stream socket;
otherwise, create a datagram socket.
IOExceptionprotected void connect(String host, int port) throws UnknownHostException, IOException
connect in class SocketImplhost - the specified hostport - the specified port
UnknownHostException
IOExceptionprotected void connect(InetAddress address, int port) throws IOException
connect in class SocketImpladdress - the addressport - the specified port
IOExceptionprotected void connect(SocketAddress address, int timeout) throws IOException
connect in class SocketImpladdress - the addresstimeout - the timeout value in milliseconds, or zero for no timeout.
IOException - if connection fails
IllegalArgumentException - if address is null or is a
SocketAddress subclass not supported by this socketprivate void connectToAddress(InetAddress address, int port, int timeout) throws IOException
public void setOption(int opt, Object val) throws SocketException
SocketOptionsSocketImpl s; ... s.setOption(SO_LINGER, new Integer(10)); // OK - set SO_LINGER w/ timeout of 10 sec. s.setOption(SO_LINGER, new Double(10)); // ERROR - expects java.lang.IntegerIf the requested option is binary, it can be set using this method by a java.lang.Boolean:
s.setOption(TCP_NODELAY, new Boolean(true)); // OK - enables TCP_NODELAY, a binary option
s.setOption(TCP_NODELAY, new Boolean(false)); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, new Boolean(false)); // OK - disables SO_LINGER
opt - identifies the optionval - the parameter of the socket option
SocketException - if the option is unrecognized,
the socket is closed, or some low-level error occurredSocketOptions.getOption(int)public Object getOption(int opt) throws SocketException
SocketOptions
SocketImpl s;
...
Boolean noDelay = (Boolean)(s.getOption(TCP_NODELAY));
if (noDelay.booleanValue()) {
// true if TCP_NODELAY is enabled...
...
}
For options that take a particular type as a parameter, getOption(int) will return the paramter's value, else it will return java.lang.Boolean(false):
Object o = s.getOption(SO_LINGER);
if (o instanceof Integer) {
System.out.print("Linger time is " + ((Integer)o).intValue());
} else {
// the true type of o is java.lang.Boolean(false);
}
opt - an int identifying the option to fetch
SocketException - if the socket is closedSocketOptions.setOption(int, java.lang.Object)private void doConnect(InetAddress address, int port, int timeout) throws IOException
protected void bind(InetAddress address, int lport) throws IOException
bind in class SocketImpladdress - the addresslport - the port number.
IOExceptionprotected void listen(int count) throws IOException
listen in class SocketImplcount - the amount of time to listen for connections
IOExceptionprotected void accept(SocketImpl s) throws IOException
accept in class SocketImpls - the connection
IOExceptionprotected InputStream getInputStream() throws IOException
getInputStream in class SocketImplIOExceptionvoid setInputStream(SocketInputStream in)
protected OutputStream getOutputStream() throws IOException
getOutputStream in class SocketImplIOExceptionprotected int available() throws IOException
available in class SocketImplIOExceptionprotected void close() throws IOException
close in class SocketImplprotected void shutdownInput() throws IOException
shutdownInput in class SocketImplIOExceptionjava.net.Socket#shutdownOutput(),
java.net.Socket#close(),
java.net.Socket#setSoLinger(boolean, int)protected void shutdownOutput() throws IOException
shutdownOutput in class SocketImplIOExceptionjava.net.Socket#shutdownInput(),
java.net.Socket#close(),
java.net.Socket#setSoLinger(boolean, int)protected boolean supportsUrgentData()
SocketImpl
supportsUrgentData in class SocketImpljava.net.SocketImpl#addressprotected void sendUrgentData(int data) throws IOException
SocketImpl
sendUrgentData in class SocketImpldata - The byte of data to send
IOExceptionprotected void finalize() throws IOException
public final FileDescriptor acquireFD()
public final void releaseFD()
public boolean isConnectionReset()
public boolean isConnectionResetPending()
public void setConnectionReset()
public void setConnectionResetPending()
public boolean isClosedOrPending()
public int getTimeout()
private void socketCreate(boolean isServer) throws IOException
private void socketConnect(InetAddress address, int port, int timeout) throws IOException
private void socketBind(InetAddress address, int port) throws IOException
private void socketListen(int count) throws IOException
private void socketAccept(SocketImpl s) throws IOException
private int socketAvailable() throws IOException
private void socketClose0(boolean useDeferredClose) throws IOException
private void socketShutdown(int howto) throws IOException
private static void initProto()
private void socketSetOption(int cmd, boolean on, Object value) throws SocketException
private int socketGetOption(int opt, Object iaContainerObj) throws SocketException
private void socketSendUrgentData(int data) throws IOException