org.apache.jmeter.protocol.tcp.sampler

## Class BinaryTCPClientImpl

- java.lang.Object
- - org.apache.jmeter.protocol.tcp.sampler.AbstractTCPClient
  - - org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl

- All Implemented Interfaces:
    TCPClient

      public class BinaryTCPClientImpl
      extends AbstractTCPClient

  TCPClient implementation. Reads data until the defined EOM byte is reached. If there is no EOM byte defined, then reads until the end of the stream is reached. The EOM byte is defined by the property "tcp.BinaryTCPClient.eomByte".

  Input/Output strings are passed as hex-encoded binary strings.

- - ### Field Summary

    - ### Fields inherited from class org.apache.jmeter.protocol.tcp.sampler.AbstractTCPClient

      `eolByte, useEolByte`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BinaryTCPClientImpl()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static byte[]` | `hexStringToByteArray(String hexEncodedBinary)` Convert hex string to binary byte array.
    `String` | `read(InputStream is)` Deprecated.
    `String` | `read(InputStream is, SampleResult sampleResult)` Reads data until the defined EOM byte is reached.
    `void` | `write(OutputStream os, InputStream is)`
    `void` | `write(OutputStream os, String hexEncodedBinary)` Input (hex) string is converted to binary and written to the output stream.

    - ### Methods inherited from class org.apache.jmeter.protocol.tcp.sampler.AbstractTCPClient

      `getCharset, getEolByte, setCharset, setEolByte, setupTest, teardownTest`

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

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

- - ### Constructor Detail

    - #### BinaryTCPClientImpl

          public BinaryTCPClientImpl()

  - ### Method Detail

    - #### hexStringToByteArray

          public static byte[] hexStringToByteArray(String hexEncodedBinary)

      Convert hex string to binary byte array.
      Parameters:
        `hexEncodedBinary` - - hex-encoded binary string
      Returns:
        Byte array containing binary representation of input hex-encoded string
      Throws:
        `IllegalArgumentException` - if string is not an even number of hex digits

    - #### write

          public void write(OutputStream os,
                            String hexEncodedBinary)
                     throws IOException

      Input (hex) string is converted to binary and written to the output stream.
      Parameters:
        `os` - output stream
        `hexEncodedBinary` - hex-encoded binary
      Throws:
        `IOException` - when writing fails

    - #### write

          public void write(OutputStream os,
                            InputStream is)

      Parameters:
        `os` - - OutputStream for socket
        `is` - - InputStream to be written to Socket

    - #### read

          @Deprecated
          public String read(InputStream is)
                                  throws ReadException

      Deprecated.
      Parameters:
        `is` - - InputStream for socket
      Returns:
        String read from socket
      Throws:
        `ReadException` - exception that can contain partial response (Response until error occurred)

    - #### read

          public String read(InputStream is,
                             SampleResult sampleResult)
                      throws ReadException

      Reads data until the defined EOM byte is reached. If there is no EOM byte defined, then reads until the end of the stream is reached. Response data is converted to hex-encoded binary
      Specified by:
        `read` in interface `TCPClient`
      Overrides:
        `read` in class `AbstractTCPClient`
      Parameters:
        `is` - - InputStream for socket
        `sampleResult` - `SampleResult`
      Returns:
        hex-encoded binary string
      Throws:
        `ReadException` - when reading fails
      See Also:
        `TCPClient.read(java.io.InputStream, org.apache.jmeter.samplers.SampleResult)`

Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.