public abstract class SocketImpl extends java.lang.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 java.io.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(java.lang.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 java.io.FileDescriptor |
getFileDescriptor()
Returns the FileDescriptor objects for this socket.
|
protected InetAddress |
getInetAddress()
Returns the remote address this socket is connected to
|
protected abstract java.io.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 java.io.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.
|
java.lang.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 java.io.FileDescriptor fd
protected int localport
protected int port
public SocketImpl()
protected abstract void create(boolean stream) throws java.io.IOException
stream - true for a stream socket, false for a datagram socketjava.io.IOException - If an error occursprotected abstract void connect(java.lang.String host, int port) throws java.io.IOException
host - The remote hostname to connect toport - The remote port to connect tojava.io.IOException - If an error occursprotected abstract void connect(InetAddress host, int port) throws java.io.IOException
host - The remote address to connect toport - The remote port to connect tojava.io.IOException - If an error occursprotected abstract void connect(SocketAddress address, int timeout) throws java.io.IOException
address - Data of remote hosttimeout - time to wait to stop connectingjava.io.IOException - If an error occursprotected abstract void bind(InetAddress host, int port) throws java.io.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 tojava.io.IOException - If an error occursprotected abstract void listen(int backlog) throws java.io.IOException
backlog - The length of the pending connection queuejava.io.IOException - If an error occursprotected abstract void accept(SocketImpl s) throws java.io.IOException
s - The implementation object for the accepted connection.java.io.IOException - If an error occursprotected abstract java.io.InputStream getInputStream() throws java.io.IOException
InputStream object for reading from this socket.InputStream for reading from this socket.java.io.IOException - If an error occursprotected abstract java.io.OutputStream getOutputStream() throws java.io.IOException
OutputStream object for writing to this socketOutputStream for writing to this socket.java.io.IOException - If an error occurs.protected abstract int available() throws java.io.IOException
java.io.IOException - If an error occursprotected abstract void close() throws java.io.IOException
Note that if the SO_LINGER option is set on this socket, then the operation could block.
java.io.IOException - If an error occursprotected java.io.FileDescriptor getFileDescriptor()
protected InetAddress getInetAddress()
protected int getPort()
protected boolean supportsUrgentData()
protected abstract void sendUrgentData(int data) throws java.io.IOException
data - The byte to send, the low eight bits of itjava.io.IOException - If an error occursprotected int getLocalPort()
public java.lang.String toString()
String representing the remote host and port of
this socket.toString in class java.lang.ObjectString for this socket.Object.getClass(),
Object.hashCode(),
Class.getName(),
Integer.toHexString(int)protected void shutdownInput() throws java.io.IOException
java.io.IOException - if an error occursprotected void shutdownOutput() throws java.io.IOException
java.io.IOException - if an error occurs