public abstract class SocketImpl extends Object implements SocketOptions
A default implementation is provided by the system, but this can be
changed via installing a SocketImplFactory (through a call
to the static method Socket.setSocketImplFactory). A
subclass of Socket can also pass in a SocketImpl
to the Socket(SocketImpl) constructor to use an
implementation different from the system default without installing
a factory.
| Modifier and Type | Field and Description |
|---|---|
protected InetAddress |
address
The address of the remote end of the socket connection
|
protected FileDescriptor |
fd
A FileDescriptor object representing this socket connection.
|
protected int |
localport
The port number the socket is bound to locally
|
protected int |
port
The port number of the remote end of the socket connection
|
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| Constructor and Description |
|---|
SocketImpl()
Default, no-argument constructor for use by subclasses.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
accept(SocketImpl s)
Accepts a connection on this socket.
|
protected abstract int |
available()
Returns the number of bytes that the caller can read from this socket
without blocking.
|
protected abstract void |
bind(InetAddress host,
int port)
Binds to the specified port on the specified addr.
|
protected abstract void |
close()
Closes the socket.
|
protected abstract void |
connect(InetAddress host,
int port)
Connects to the remote address and port specified as arguments.
|
protected abstract void |
connect(SocketAddress address,
int timeout)
Connects to the socket to the host specified in address.
|
protected abstract void |
connect(String host,
int port)
Connects to the remote hostname and port specified as arguments.
|
protected abstract void |
create(boolean stream)
Creates a new socket that is not bound to any local address/port and
is not connected to any remote address/port.
|
protected FileDescriptor |
getFileDescriptor()
Returns the FileDescriptor objects for this socket.
|
protected InetAddress |
getInetAddress()
Returns the remote address this socket is connected to
|
protected abstract InputStream |
getInputStream()
Returns an
InputStream object for reading from this socket. |
protected int |
getLocalPort()
Returns the local port this socket is bound to
|
protected abstract OutputStream |
getOutputStream()
Returns an
OutputStream object for writing to this socket |
protected int |
getPort()
Returns the remote port this socket is connected to
|
protected abstract void |
listen(int backlog)
Starts listening for connections on a socket.
|
protected abstract void |
sendUrgentData(int data)
Sends one byte of urgent data to the socket.
|
protected void |
shutdownInput()
Shut down the input side of this socket.
|
protected void |
shutdownOutput()
Shut down the output side of this socket.
|
protected boolean |
supportsUrgentData()
Returns true or false when this socket supports sending urgent data
or not.
|
String |
toString()
Returns a
String representing the remote host and port of
this socket. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetOption, setOptionprotected InetAddress address
protected FileDescriptor fd
protected int localport
protected int port
public SocketImpl()
protected abstract void create(boolean stream) throws IOException
stream - true for a stream socket, false for a datagram socketIOException - If an error occursprotected abstract void connect(String host, int port) throws IOException
host - The remote hostname to connect toport - The remote port to connect toIOException - If an error occursprotected abstract void connect(InetAddress host, int port) throws IOException
host - The remote address to connect toport - The remote port to connect toIOException - If an error occursprotected abstract void connect(SocketAddress address, int timeout) throws IOException
address - Data of remote hosttimeout - time to wait to stop connectingIOException - If an error occursprotected abstract void bind(InetAddress host, int port) throws IOException
Note that it is unspecified how to bind to all interfaces on the localhost (INADDR_ANY).
host - The address to bind toport - The port number to bind toIOException - If an error occursprotected abstract void listen(int backlog) throws IOException
backlog - The length of the pending connection queueIOException - If an error occursprotected abstract void accept(SocketImpl s) throws IOException
s - The implementation object for the accepted connection.IOException - If an error occursprotected abstract InputStream getInputStream() throws IOException
InputStream object for reading from this socket.InputStream for reading from this socket.IOException - If an error occursprotected abstract OutputStream getOutputStream() throws IOException
OutputStream object for writing to this socketOutputStream for writing to this socket.IOException - If an error occurs.protected abstract int available() throws IOException
IOException - If an error occursprotected abstract void close() throws IOException
Note that if the SO_LINGER option is set on this socket, then the operation could block.
IOException - If an error occursprotected FileDescriptor getFileDescriptor()
protected InetAddress getInetAddress()
protected int getPort()
protected boolean supportsUrgentData()
protected abstract void sendUrgentData(int data) throws IOException
data - The byte to send, the low eight bits of itIOException - If an error occursprotected int getLocalPort()
public String toString()
String representing the remote host and port of
this socket.toString in class ObjectString for this socket.Object.getClass(),
Object.hashCode(),
Class.getName(),
Integer.toHexString(int)protected void shutdownInput() throws IOException
IOException - if an error occursprotected void shutdownOutput() throws IOException
IOException - if an error occurs