org.apache.jmeter.util

## 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 and Description
`SlowSSLSocket(SSLSocket sock, int cps)` Wrap an SSLSocket with slow input and output streams

### Method Summary

All Methods Instance Methods Concrete Methods
`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 javax.net.ssl.SSLSocket

`getHandshakeSession, getSSLParameters, setSSLParameters`

### Methods inherited from class java.net.Socket

`setPerformancePreferences, setSocketImplFactory`

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### 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 Detail

#### 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 `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
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`