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, wait
getOption, setOption
protected 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 Object
String
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