# Class SlowSSLSocket

java.lang.Object
java.net.Socket
javax.net.ssl.SSLSocket
org.apache.jmeter.util.SlowSSLSocket

All Implemented Interfaces:
  `Closeable, AutoCloseable`

public class SlowSSLSocket extends SSLSocket
"Slow" SSLsocket implementation to emulate dial-up modems etc WARNING: the class relies on overriding all superclass methods in order to apply them to the input socket. Any missing methods will access the superclass socket, which will probably be in the wrong state.

## Constructor Summary

Constructors
Constructor
Description
`SlowSSLSocket(SSLSocket sock, int cps)`
Wrap an SSLSocket with slow input and output streams

## Method Summary

Modifier and Type
Method
Description
`void`
`addHandshakeCompletedListener(HandshakeCompletedListener arg0)`
`void`
`bind(SocketAddress bindpoint)`
`void`
`close()`
`void`
`connect(SocketAddress endpoint)`
`void`
`connect(SocketAddress endpoint, int timeout)`
`SocketChannel`
`getChannel()`
`String[]`
`getEnabledCipherSuites()`
`String[]`
`getEnabledProtocols()`
`boolean`
`getEnableSessionCreation()`
`InetAddress`
`getInetAddress()`
`InputStream`
`getInputStream()`
`boolean`
`getKeepAlive()`
`InetAddress`
`getLocalAddress()`
`int`
`getLocalPort()`
`SocketAddress`
`getLocalSocketAddress()`
`boolean`
`getNeedClientAuth()`
`boolean`
`getOOBInline()`
`OutputStream`
`getOutputStream()`
`int`
`getPort()`
`int`
`getReceiveBufferSize()`
`SocketAddress`
`getRemoteSocketAddress()`
`boolean`
`getReuseAddress()`
`int`
`getSendBufferSize()`
`SSLSession`
`getSession()`
`int`
`getSoLinger()`
`int`
`getSoTimeout()`
`String[]`
`getSupportedCipherSuites()`
`String[]`
`getSupportedProtocols()`
`boolean`
`getTcpNoDelay()`
`int`
`getTrafficClass()`
`boolean`
`getUseClientMode()`
`boolean`
`getWantClientAuth()`
`boolean`
`isBound()`
`boolean`
`isClosed()`
`boolean`
`isConnected()`
`boolean`
`isInputShutdown()`
`boolean`
`isOutputShutdown()`
`void`
`removeHandshakeCompletedListener(HandshakeCompletedListener arg0)`
`void`
`sendUrgentData(int data)`
`void`
`setEnabledCipherSuites(String[] arg0)`
`void`
`setEnabledProtocols(String[] arg0)`
`void`
`setEnableSessionCreation(boolean arg0)`
`void`
`setKeepAlive(boolean on)`
`void`
`setNeedClientAuth(boolean arg0)`
`void`
`setOOBInline(boolean on)`
`void`
`setReceiveBufferSize(int size)`
`void`
`setReuseAddress(boolean on)`
`void`
`setSendBufferSize(int size)`
`void`
`setSoLinger(boolean on, int linger)`
`void`
`setSoTimeout(int timeout)`
`void`
`setTcpNoDelay(boolean on)`
`void`
`setTrafficClass(int tc)`
`void`
`setUseClientMode(boolean arg0)`
`void`
`setWantClientAuth(boolean arg0)`
`void`
`shutdownInput()`
`void`
`shutdownOutput()`
`void`
`startHandshake()`
`String`
`toString()`

### Methods inherited from class SSLSocket

`getApplicationProtocol, getHandshakeApplicationProtocol, getHandshakeApplicationProtocolSelector, getHandshakeSession, getSSLParameters, setHandshakeApplicationProtocolSelector, setSSLParameters`

### Methods inherited from class Socket

`getOption, setOption, setPerformancePreferences, setSocketImplFactory, supportedOptions`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### SlowSSLSocket

public SlowSSLSocket(SSLSocket sock, int cps)
Wrap an SSLSocket with slow input and output streams

Parameters:
  `sock` - SSLSocket to be wrapped
  `cps` - characters per second to emulate

## Method Details

### getOutputStream

public OutputStream getOutputStream() throws IOException

Overrides:
  `getOutputStream` in class `Socket`
Throws:
  `IOException`

### getInputStream

public InputStream getInputStream() throws IOException

Overrides:
  `getInputStream` in class `Socket`
Throws:
  `IOException`

### addHandshakeCompletedListener

public void addHandshakeCompletedListener(HandshakeCompletedListener arg0)

Specified by:
  `addHandshakeCompletedListener` in class `SSLSocket`

### getEnableSessionCreation

public boolean getEnableSessionCreation()

Specified by:
  `getEnableSessionCreation` in class `SSLSocket`

### getEnabledCipherSuites

public String[] getEnabledCipherSuites()

Specified by:
  `getEnabledCipherSuites` in class `SSLSocket`

### getEnabledProtocols

public String[] getEnabledProtocols()

Specified by:
  `getEnabledProtocols` in class `SSLSocket`

### getNeedClientAuth

public boolean getNeedClientAuth()

Specified by:
  `getNeedClientAuth` in class `SSLSocket`

### getSession

public SSLSession getSession()

Specified by:
  `getSession` in class `SSLSocket`

### getSupportedCipherSuites

public String[] getSupportedCipherSuites()

Specified by:
  `getSupportedCipherSuites` in class `SSLSocket`

### getSupportedProtocols

public String[] getSupportedProtocols()

Specified by:
  `getSupportedProtocols` in class `SSLSocket`

### getUseClientMode

public boolean getUseClientMode()

Specified by:
  `getUseClientMode` in class `SSLSocket`

### getWantClientAuth

public boolean getWantClientAuth()

Specified by:
  `getWantClientAuth` in class `SSLSocket`

### removeHandshakeCompletedListener

public void removeHandshakeCompletedListener(HandshakeCompletedListener arg0)

Specified by:
  `removeHandshakeCompletedListener` in class `SSLSocket`

### setEnableSessionCreation

public void setEnableSessionCreation(boolean arg0)

Specified by:
  `setEnableSessionCreation` in class `SSLSocket`

### setEnabledCipherSuites

public void setEnabledCipherSuites(String[] arg0)

Specified by:
  `setEnabledCipherSuites` in class `SSLSocket`

### setEnabledProtocols

public void setEnabledProtocols(String[] arg0)

Specified by:
  `setEnabledProtocols` in class `SSLSocket`

### setNeedClientAuth

public void setNeedClientAuth(boolean arg0)

Specified by:
  `setNeedClientAuth` in class `SSLSocket`

### setUseClientMode

public void setUseClientMode(boolean arg0)

Specified by:
  `setUseClientMode` in class `SSLSocket`

### setWantClientAuth

public void setWantClientAuth(boolean arg0)

Specified by:
  `setWantClientAuth` in class `SSLSocket`

### startHandshake

public void startHandshake() throws IOException

Specified by:
  `startHandshake` in class `SSLSocket`
Throws:
  `IOException`

### bind

public void bind(SocketAddress bindpoint) throws IOException

Overrides:
  `bind` in class `Socket`
Throws:
  `IOException`

### close

public void close() throws IOException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `Socket`
Throws:
  `IOException`

### connect

public void connect(SocketAddress endpoint, int timeout) throws IOException

Overrides:
  `connect` in class `Socket`
Throws:
  `IOException`

### connect

public void connect(SocketAddress endpoint) throws IOException

Overrides:
  `connect` in class `Socket`
Throws:
  `IOException`

### getChannel

public SocketChannel getChannel()

Overrides:
  `getChannel` in class `Socket`

### getInetAddress

public InetAddress getInetAddress()

Overrides:
  `getInetAddress` in class `Socket`

### getKeepAlive

public boolean getKeepAlive() throws SocketException

Overrides:
  `getKeepAlive` in class `Socket`
Throws:
  `SocketException`

### getLocalAddress

public InetAddress getLocalAddress()

Overrides:
  `getLocalAddress` in class `Socket`

### getLocalPort

public int getLocalPort()

Overrides:
  `getLocalPort` in class `Socket`

### getLocalSocketAddress

public SocketAddress getLocalSocketAddress()

Overrides:
  `getLocalSocketAddress` in class `Socket`

### getOOBInline

public boolean getOOBInline() throws SocketException

Overrides:
  `getOOBInline` in class `Socket`
Throws:
  `SocketException`

### getPort

public int getPort()

Overrides:
  `getPort` in class `Socket`

### getReceiveBufferSize

public int getReceiveBufferSize() throws SocketException

Overrides:
  `getReceiveBufferSize` in class `Socket`
Throws:
  `SocketException`

### getRemoteSocketAddress

public SocketAddress getRemoteSocketAddress()

Overrides:
  `getRemoteSocketAddress` in class `Socket`

### getReuseAddress

public boolean getReuseAddress() throws SocketException

Overrides:
  `getReuseAddress` in class `Socket`
Throws:
  `SocketException`

### getSendBufferSize

public int getSendBufferSize() throws SocketException

Overrides:
  `getSendBufferSize` in class `Socket`
Throws:
  `SocketException`

### getSoLinger

public int getSoLinger() throws SocketException

Overrides:
  `getSoLinger` in class `Socket`
Throws:
  `SocketException`

### getSoTimeout

public int getSoTimeout() throws SocketException

Overrides:
  `getSoTimeout` in class `Socket`
Throws:
  `SocketException`

### getTcpNoDelay

public boolean getTcpNoDelay() throws SocketException

Overrides:
  `getTcpNoDelay` in class `Socket`
Throws:
  `SocketException`

### getTrafficClass

public int getTrafficClass() throws SocketException

Overrides:
  `getTrafficClass` in class `Socket`
Throws:
  `SocketException`

### isBound

public boolean isBound()

Overrides:
  `isBound` in class `Socket`

### isClosed

public boolean isClosed()

Overrides:
  `isClosed` in class `Socket`

### isConnected

public boolean isConnected()

Overrides:
  `isConnected` in class `Socket`

### isInputShutdown

public boolean isInputShutdown()

Overrides:
  `isInputShutdown` in class `Socket`

### isOutputShutdown

public boolean isOutputShutdown()

Overrides:
  `isOutputShutdown` in class `Socket`

### sendUrgentData

public void sendUrgentData(int data) throws IOException

Overrides:
  `sendUrgentData` in class `Socket`
Throws:
  `IOException`

### setKeepAlive

public void setKeepAlive(boolean on) throws SocketException

Overrides:
  `setKeepAlive` in class `Socket`
Throws:
  `SocketException`

### setOOBInline

public void setOOBInline(boolean on) throws SocketException

Overrides:
  `setOOBInline` in class `Socket`
Throws:
  `SocketException`

### setReceiveBufferSize

public void setReceiveBufferSize(int size) throws SocketException

Overrides:
  `setReceiveBufferSize` in class `Socket`
Throws:
  `SocketException`

### setReuseAddress

public void setReuseAddress(boolean on) throws SocketException

Overrides:
  `setReuseAddress` in class `Socket`
Throws:
  `SocketException`

### setSendBufferSize

public void setSendBufferSize(int size) throws SocketException

Overrides:
  `setSendBufferSize` in class `Socket`
Throws:
  `SocketException`

### setSoLinger

public void setSoLinger(boolean on, int linger) throws SocketException

Overrides:
  `setSoLinger` in class `Socket`
Throws:
  `SocketException`

### setSoTimeout

public void setSoTimeout(int timeout) throws SocketException

Overrides:
  `setSoTimeout` in class `Socket`
Throws:
  `SocketException`

### setTcpNoDelay

public void setTcpNoDelay(boolean on) throws SocketException

Overrides:
  `setTcpNoDelay` in class `Socket`
Throws:
  `SocketException`

### setTrafficClass

public void setTrafficClass(int tc) throws SocketException

Overrides:
  `setTrafficClass` in class `Socket`
Throws:
  `SocketException`

### shutdownInput

public void shutdownInput() throws IOException

Overrides:
  `shutdownInput` in class `Socket`
Throws:
  `IOException`

### shutdownOutput

public void shutdownOutput() throws IOException

Overrides:
  `shutdownOutput` in class `Socket`
Throws:
  `IOException`

### toString

public String toString()

Overrides:
  `toString` in class `Socket`