|
JavaTM 2 Platform Std. Ed. v1.3.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.net.Socket
This class implements client sockets (also called just "sockets"). A socket is an endpoint for communication between two machines.
The actual work of the socket is performed by an instance of the
SocketImpl
class. An application, by changing
the socket factory that creates the socket implementation,
can configure itself to create sockets appropriate to the local
firewall.
setSocketImplFactory(java.net.SocketImplFactory)
,
SocketImpl
Constructor Summary | |
protected |
Socket()
Creates an unconnected socket, with the system-default type of SocketImpl. |
|
Socket(InetAddress address,
int port)
Creates a stream socket and connects it to the specified port number at the specified IP address. |
|
Socket(InetAddress host,
int port,
boolean stream)
Deprecated. Use DatagramSocket instead for UDP transport. |
|
Socket(InetAddress address,
int port,
InetAddress localAddr,
int localPort)
Creates a socket and connects it to the specified remote address on the specified remote port. |
protected |
Socket(SocketImpl impl)
Creates an unconnected Socket with a user-specified SocketImpl. |
|
Socket(String host,
int port)
Creates a stream socket and connects it to the specified port number on the named host. |
|
Socket(String host,
int port,
boolean stream)
Deprecated. Use DatagramSocket instead for UDP transport. |
|
Socket(String host,
int port,
InetAddress localAddr,
int localPort)
Creates a socket and connects it to the specified remote host on the specified remote port. |
Method Summary | |
void |
close()
Closes this socket. |
InetAddress |
getInetAddress()
Returns the address to which the socket is connected. |
InputStream |
getInputStream()
Returns an input stream for this socket. |
boolean |
getKeepAlive()
Tests if SO_KEEPALIVE is enabled. |
InetAddress |
getLocalAddress()
Gets the local address to which the socket is bound. |
int |
getLocalPort()
Returns the local port to which this socket is bound. |
OutputStream |
getOutputStream()
Returns an output stream for this socket. |
int |
getPort()
Returns the remote port to which this socket is connected. |
int |
getReceiveBufferSize()
Gets the value of the SO_RCVBUF option for this Socket, that is the buffer size used by the platform for input on this Socket. |
int |
getSendBufferSize()
Get value of the SO_SNDBUF option for this Socket, that is the buffer size used by the platform for output on this Socket. |
int |
getSoLinger()
Returns setting for SO_LINGER. |
int |
getSoTimeout()
Returns setting for SO_TIMEOUT. |
boolean |
getTcpNoDelay()
Tests if TCP_NODELAY is enabled. |
void |
setKeepAlive(boolean on)
Enable/disable SO_KEEPALIVE. |
void |
setReceiveBufferSize(int size)
Sets the SO_RCVBUF option to the specified value for this Socket. |
void |
setSendBufferSize(int size)
Sets the SO_SNDBUF option to the specified value for this Socket. |
static void |
setSocketImplFactory(SocketImplFactory fac)
Sets the client socket implementation factory for the application. |
void |
setSoLinger(boolean on,
int linger)
Enable/disable SO_LINGER with the specified linger time in seconds. |
void |
setSoTimeout(int timeout)
Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. |
void |
setTcpNoDelay(boolean on)
Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). |
void |
shutdownInput()
Places the input stream for this socket at "end of stream". |
void |
shutdownOutput()
Disables the output stream for this socket. |
String |
toString()
Converts this socket to a String . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
protected Socket()
protected Socket(SocketImpl impl) throws SocketException
impl
- an instance of a SocketImpl
the subclass wishes to use on the Socket.SocketException
- if there is an error in the underlying protocol,
such as a TCP error.public Socket(String host, int port) throws UnknownHostException, IOException
If the application has specified a server socket factory, that
factory's createSocketImpl
method is called to create
the actual socket implementation. Otherwise a "plain" socket is created.
If there is a security manager, its
checkConnect
method is called
with the host address and port
as its arguments. This could result in a SecurityException.
host
- the host name.port
- the port number.UnknownHostException
- if the IP address of
the host could not be determined.IOException
- if an I/O error occurs when creating the socket.SecurityException
- if a security manager exists and its
checkConnect
method doesn't allow the operation.setSocketImplFactory(java.net.SocketImplFactory)
,
SocketImpl
,
SocketImplFactory.createSocketImpl()
,
SecurityManager.checkConnect(java.lang.String, int)
public Socket(InetAddress address, int port) throws IOException
If the application has specified a socket factory, that factory's
createSocketImpl
method is called to create the
actual socket implementation. Otherwise a "plain" socket is created.
If there is a security manager, its
checkConnect
method is called
with the host address and port
as its arguments. This could result in a SecurityException.
address
- the IP address.port
- the port number.IOException
- if an I/O error occurs when creating the socket.SecurityException
- if a security manager exists and its
checkConnect
method doesn't allow the operation.setSocketImplFactory(java.net.SocketImplFactory)
,
SocketImpl
,
SocketImplFactory.createSocketImpl()
,
SecurityManager.checkConnect(java.lang.String, int)
public Socket(String host, int port, InetAddress localAddr, int localPort) throws IOException
If there is a security manager, its
checkConnect
method is called
with the host address and port
as its arguments. This could result in a SecurityException.
host
- the name of the remote hostport
- the remote portlocalAddr
- the local address the socket is bound tolocalPort
- the local port the socket is bound toIOException
- if an I/O error occurs when creating the socket.SecurityException
- if a security manager exists and its
checkConnect
method doesn't allow the operation.SecurityManager.checkConnect(java.lang.String, int)
public Socket(InetAddress address, int port, InetAddress localAddr, int localPort) throws IOException
If there is a security manager, its
checkConnect
method is called
with the host address and port
as its arguments. This could result in a SecurityException.
address
- the remote addressport
- the remote portlocalAddr
- the local address the socket is bound tolocalPort
- the local port the socket is bound toIOException
- if an I/O error occurs when creating the socket.SecurityException
- if a security manager exists and its
checkConnect
method doesn't allow the operation.SecurityManager.checkConnect(java.lang.String, int)
public Socket(String host, int port, boolean stream) throws IOException
If the stream argument is true
, this creates a
stream socket. If the stream argument is false
, it
creates a datagram socket.
If the application has specified a server socket factory, that
factory's createSocketImpl
method is called to create
the actual socket implementation. Otherwise a "plain" socket is created.
If there is a security manager, its
checkConnect
method is called
with the host address and port
as its arguments. This could result in a SecurityException.
host
- the host name.port
- the port number.stream
- a boolean
indicating whether this is
a stream socket or a datagram socket.IOException
- if an I/O error occurs when creating the socket.SecurityException
- if a security manager exists and its
checkConnect
method doesn't allow the operation.setSocketImplFactory(java.net.SocketImplFactory)
,
SocketImpl
,
SocketImplFactory.createSocketImpl()
,
SecurityManager.checkConnect(java.lang.String, int)
public Socket(InetAddress host, int port, boolean stream) throws IOException
If the stream argument is true
, this creates a
stream socket. If the stream argument is false
, it
creates a datagram socket.
If the application has specified a server socket factory, that
factory's createSocketImpl
method is called to create
the actual socket implementation. Otherwise a "plain" socket is created.
If there is a security manager, its
checkConnect
method is called
with host.getHostAddress()
and port
as its arguments. This could result in a SecurityException.
host
- the IP address.port
- the port number.stream
- if true
, create a stream socket;
otherwise, create a datagram socket.IOException
- if an I/O error occurs when creating the socket.SecurityException
- if a security manager exists and its
checkConnect
method doesn't allow the operation.setSocketImplFactory(java.net.SocketImplFactory)
,
SocketImpl
,
SocketImplFactory.createSocketImpl()
,
SecurityManager.checkConnect(java.lang.String, int)
Method Detail |
public InetAddress getInetAddress()
public InetAddress getLocalAddress()
public int getPort()
public int getLocalPort()
public InputStream getInputStream() throws IOException
IOException
- if an I/O error occurs when creating the
input stream.public OutputStream getOutputStream() throws IOException
IOException
- if an I/O error occurs when creating the
output stream.public void setTcpNoDelay(boolean on) throws SocketException
on
- true
to enable TCP_NODELAY,
false to disable.- Throws:
SocketException
- if there is an error
in the underlying protocol, such as a TCP error.- Since:
- JDK1.1
- See Also:
getTcpNoDelay()
public boolean getTcpNoDelay() throws SocketException
boolean
indicating whether or not TCP_NODELAY is enabled.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.setTcpNoDelay(boolean)
public void setSoLinger(boolean on, int linger) throws SocketException
on
- whether or not to linger on.linger
- how to linger for, if on is true.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.IllegalArgumentException
- if the linger value is negative.getSoLinger()
public int getSoLinger() throws SocketException
SocketException
- if there is an error
in the underlying protocol, such as a TCP error.setSoLinger(boolean, int)
public void setSoTimeout(int timeout) throws SocketException
timeout
- the specified timeout, in milliseconds.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.getSoTimeout()
public int getSoTimeout() throws SocketException
SocketException
- if there is an error
in the underlying protocol, such as a TCP error.setSoTimeout(int)
public void setSendBufferSize(int size) throws SocketException
Increasing buffer size can increase the performance of network I/O for high-volume connection, while decreasing it can help reduce the backlog of incoming data. For UDP, this sets the maximum size of a packet that may be sent on this Socket.
Because SO_SNDBUF is a hint, applications that want to
verify what size the buffers were set to should call
getSendBufferSize()
.
size
- the size to which to set the send buffer
size. This value must be greater than 0.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.IllegalArgumentException
- if the
value is 0 or is negative.getSendBufferSize()
public int getSendBufferSize() throws SocketException
SocketException
- if there is an error
in the underlying protocol, such as a TCP error.setSendBufferSize(int)
public void setReceiveBufferSize(int size) throws SocketException
Increasing buffer size can increase the performance of network I/O for high-volume connection, while decreasing it can help reduce the backlog of incoming data. For UDP, this sets the maximum size of a packet that may be sent on this Socket.
Because SO_RCVBUF is a hint, applications that want to
verify what size the buffers were set to should call
getReceiveBufferSize()
.
size
- the size to which to set the receive buffer
size. This value must be greater than 0.IllegalArgumentException
- if the value is 0 or is
negative.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.getReceiveBufferSize()
public int getReceiveBufferSize() throws SocketException
SocketException
- if there is an error
in the underlying protocol, such as a TCP error.setReceiveBufferSize(int)
public void setKeepAlive(boolean on) throws SocketException
on
- whether or not to have socket keep alive turned on.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.getKeepAlive()
public boolean getKeepAlive() throws SocketException
boolean
indicating whether or not SO_KEEPALIVE is enabled.SocketException
- if there is an error
in the underlying protocol, such as a TCP error.setKeepAlive(boolean)
public void close() throws IOException
IOException
- if an I/O error occurs when closing this socket.public void shutdownInput() throws IOException
IOException
- if an I/O error occurs when shutting down this
socket.shutdownOutput()
,
close()
,
setSoLinger(boolean, int)
public void shutdownOutput() throws IOException
IOException
- if an I/O error occurs when shutting down this
socket.shutdownInput()
,
close()
,
setSoLinger(boolean, int)
public String toString()
String
.toString
in class Object
public static void setSocketImplFactory(SocketImplFactory fac) throws IOException
When an application creates a new client socket, the socket
implementation factory's createSocketImpl
method is
called to create the actual socket implementation.
If there is a security manager, this method first calls
the security manager's checkSetFactory
method
to ensure the operation is allowed.
This could result in a SecurityException.
fac
- the desired factory.IOException
- if an I/O error occurs when setting the
socket factory.SocketException
- if the factory is already defined.SecurityException
- if a security manager exists and its
checkSetFactory
method doesn't allow the operation.SocketImplFactory.createSocketImpl()
,
SecurityManager.checkSetFactory()
|
JavaTM 2 Platform Std. Ed. v1.3.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.