Package com.sun.mail.util
Class WriteTimeoutSocket
- java.lang.Object
-
- java.net.Socket
-
- com.sun.mail.util.WriteTimeoutSocket
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class WriteTimeoutSocket extends Socket
A special Socket that uses a ScheduledExecutorService to implement timeouts for writes. The write timeout is specified (in milliseconds) when the WriteTimeoutSocket is created.
-
-
Constructor Summary
Constructors Constructor Description WriteTimeoutSocket(int timeout)
WriteTimeoutSocket(String host, int port, int timeout)
WriteTimeoutSocket(String host, int port, InetAddress localAddress, int localPort, int timeout)
WriteTimeoutSocket(InetAddress address, int port, int timeout)
WriteTimeoutSocket(InetAddress address, int port, InetAddress localAddress, int localPort, int timeout)
WriteTimeoutSocket(Socket socket, int timeout)
-
Method Summary
-
Methods inherited from class java.net.Socket
setSocketImplFactory
-
-
-
-
Constructor Detail
-
WriteTimeoutSocket
public WriteTimeoutSocket(Socket socket, int timeout) throws IOException
- Throws:
IOException
-
WriteTimeoutSocket
public WriteTimeoutSocket(int timeout) throws IOException
- Throws:
IOException
-
WriteTimeoutSocket
public WriteTimeoutSocket(InetAddress address, int port, int timeout) throws IOException
- Throws:
IOException
-
WriteTimeoutSocket
public WriteTimeoutSocket(InetAddress address, int port, InetAddress localAddress, int localPort, int timeout) throws IOException
- Throws:
IOException
-
WriteTimeoutSocket
public WriteTimeoutSocket(String host, int port, int timeout) throws IOException
- Throws:
IOException
-
WriteTimeoutSocket
public WriteTimeoutSocket(String host, int port, InetAddress localAddress, int localPort, int timeout) throws IOException
- Throws:
IOException
-
-
Method Detail
-
connect
public void connect(SocketAddress remote) throws IOException
- Overrides:
connect
in classSocket
- Throws:
IOException
-
connect
public void connect(SocketAddress remote, int timeout) throws IOException
- Overrides:
connect
in classSocket
- Throws:
IOException
-
bind
public void bind(SocketAddress local) throws IOException
- Overrides:
bind
in classSocket
- Throws:
IOException
-
getRemoteSocketAddress
public SocketAddress getRemoteSocketAddress()
- Overrides:
getRemoteSocketAddress
in classSocket
-
getLocalSocketAddress
public SocketAddress getLocalSocketAddress()
- Overrides:
getLocalSocketAddress
in classSocket
-
setPerformancePreferences
public void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
- Overrides:
setPerformancePreferences
in classSocket
-
getChannel
public SocketChannel getChannel()
- Overrides:
getChannel
in classSocket
-
getInetAddress
public InetAddress getInetAddress()
- Overrides:
getInetAddress
in classSocket
-
getLocalAddress
public InetAddress getLocalAddress()
- Overrides:
getLocalAddress
in classSocket
-
getLocalPort
public int getLocalPort()
- Overrides:
getLocalPort
in classSocket
-
getInputStream
public InputStream getInputStream() throws IOException
- Overrides:
getInputStream
in classSocket
- Throws:
IOException
-
getOutputStream
public OutputStream getOutputStream() throws IOException
- Overrides:
getOutputStream
in classSocket
- Throws:
IOException
-
setTcpNoDelay
public void setTcpNoDelay(boolean on) throws SocketException
- Overrides:
setTcpNoDelay
in classSocket
- Throws:
SocketException
-
getTcpNoDelay
public boolean getTcpNoDelay() throws SocketException
- Overrides:
getTcpNoDelay
in classSocket
- Throws:
SocketException
-
setSoLinger
public void setSoLinger(boolean on, int linger) throws SocketException
- Overrides:
setSoLinger
in classSocket
- Throws:
SocketException
-
getSoLinger
public int getSoLinger() throws SocketException
- Overrides:
getSoLinger
in classSocket
- Throws:
SocketException
-
sendUrgentData
public void sendUrgentData(int data) throws IOException
- Overrides:
sendUrgentData
in classSocket
- Throws:
IOException
-
setOOBInline
public void setOOBInline(boolean on) throws SocketException
- Overrides:
setOOBInline
in classSocket
- Throws:
SocketException
-
getOOBInline
public boolean getOOBInline() throws SocketException
- Overrides:
getOOBInline
in classSocket
- Throws:
SocketException
-
setSoTimeout
public void setSoTimeout(int timeout) throws SocketException
- Overrides:
setSoTimeout
in classSocket
- Throws:
SocketException
-
getSoTimeout
public int getSoTimeout() throws SocketException
- Overrides:
getSoTimeout
in classSocket
- Throws:
SocketException
-
setSendBufferSize
public void setSendBufferSize(int size) throws SocketException
- Overrides:
setSendBufferSize
in classSocket
- Throws:
SocketException
-
getSendBufferSize
public int getSendBufferSize() throws SocketException
- Overrides:
getSendBufferSize
in classSocket
- Throws:
SocketException
-
setReceiveBufferSize
public void setReceiveBufferSize(int size) throws SocketException
- Overrides:
setReceiveBufferSize
in classSocket
- Throws:
SocketException
-
getReceiveBufferSize
public int getReceiveBufferSize() throws SocketException
- Overrides:
getReceiveBufferSize
in classSocket
- Throws:
SocketException
-
setKeepAlive
public void setKeepAlive(boolean on) throws SocketException
- Overrides:
setKeepAlive
in classSocket
- Throws:
SocketException
-
getKeepAlive
public boolean getKeepAlive() throws SocketException
- Overrides:
getKeepAlive
in classSocket
- Throws:
SocketException
-
setTrafficClass
public void setTrafficClass(int tc) throws SocketException
- Overrides:
setTrafficClass
in classSocket
- Throws:
SocketException
-
getTrafficClass
public int getTrafficClass() throws SocketException
- Overrides:
getTrafficClass
in classSocket
- Throws:
SocketException
-
setReuseAddress
public void setReuseAddress(boolean on) throws SocketException
- Overrides:
setReuseAddress
in classSocket
- Throws:
SocketException
-
getReuseAddress
public boolean getReuseAddress() throws SocketException
- Overrides:
getReuseAddress
in classSocket
- Throws:
SocketException
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classSocket
- Throws:
IOException
-
shutdownInput
public void shutdownInput() throws IOException
- Overrides:
shutdownInput
in classSocket
- Throws:
IOException
-
shutdownOutput
public void shutdownOutput() throws IOException
- Overrides:
shutdownOutput
in classSocket
- Throws:
IOException
-
isConnected
public boolean isConnected()
- Overrides:
isConnected
in classSocket
-
isInputShutdown
public boolean isInputShutdown()
- Overrides:
isInputShutdown
in classSocket
-
isOutputShutdown
public boolean isOutputShutdown()
- Overrides:
isOutputShutdown
in classSocket
-
setOption
public <T> Socket setOption(SocketOption<T> so, T val) throws IOException
- Overrides:
setOption
in classSocket
- Throws:
IOException
-
getOption
public <T> T getOption(SocketOption<T> so) throws IOException
- Overrides:
getOption
in classSocket
- Throws:
IOException
-
supportedOptions
public Set<SocketOption<?>> supportedOptions()
- Overrides:
supportedOptions
in classSocket
-
getFileDescriptor$
public FileDescriptor getFileDescriptor$()
KLUDGE for Android, which has this illegal non-Java Compatible method.- Returns:
- the FileDescriptor object
-
-