Package org.apache.jmeter.protocol.tcp.sampler

# Class LengthPrefixedBinaryTCPClientImpl

java.lang.Object
org.apache.jmeter.protocol.tcp.sampler.AbstractTCPClient
org.apache.jmeter.protocol.tcp.sampler.TCPClientDecorator
org.apache.jmeter.protocol.tcp.sampler.LengthPrefixedBinaryTCPClientImpl

All Implemented Interfaces:
  `TCPClient`

public class LengthPrefixedBinaryTCPClientImpl extends TCPClientDecorator
Implements binary length-prefixed binary data.

This is used in ISO8583 for example. Input/Output strings are passed as hex-encoded binary strings.

2-Byte or 4-Byte length prefixes are supported.

Length prefix is binary of length specified by property "tcp.length.prefix.length".

## Field Summary

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

`tcpClient`

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

`eolByte, useEolByte`

## Constructor Summary

Constructors
Constructor
Description
`LengthPrefixedBinaryTCPClientImpl()`

## Method Summary

Modifier and Type
Method
Description
`byte`
`getEolByte()`
Not useful, as the byte is never used.
`String`
`read(InputStream is)`
Deprecated.
`String`
`read(InputStream is, SampleResult sampleResult)`
Default implementation calls `TCPClient.read(InputStream)` for backward compatibility
`void`
`setEolByte(int eolInt)`
Set the end-of-line/end-of-message byte.
`void`
`write(OutputStream os, InputStream is)`
`void`
`write(OutputStream os, String s)`

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

`byteArrayToInt, intToByteArray`

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

`getCharset, setCharset, setupTest, teardownTest`

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

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

## Constructor Details

### LengthPrefixedBinaryTCPClientImpl

public LengthPrefixedBinaryTCPClientImpl()

## Method Details

### write

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

Parameters:
  `os` - - OutputStream for socket
  `s` - - String to write
Throws:
  `IOException` - when writing fails

### write

public void write(OutputStream os, InputStream is) throws IOException

Parameters:
  `os` - - OutputStream for socket
  `is` - - InputStream to be written to Socket
Throws:
  `IOException` - when writing fails

### 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
Default implementation calls `TCPClient.read(InputStream)` for backward compatibility

Specified by:
  `read` in interface `TCPClient`
Overrides:
  `read` in class `AbstractTCPClient`
Parameters:
  `is` - - InputStream for socket
  `sampleResult` - `SampleResult`
Returns:
  String read from socket
Throws:
  `ReadException` - exception that can contain partial response
See Also:
  - `TCPClient.read(java.io.InputStream, org.apache.jmeter.samplers.SampleResult)`

### getEolByte

public byte getEolByte()
Not useful, as the byte is never used.

Get the end-of-line/end-of-message byte.

Specified by:
  `getEolByte` in interface `TCPClient`
Overrides:
  `getEolByte` in class `AbstractTCPClient`
Returns:
  Returns the eolByte.

### setEolByte

public void setEolByte(int eolInt)
Set the end-of-line/end-of-message byte. If the value is out of range of a byte, then it is to be ignored.

Specified by:
  `setEolByte` in interface `TCPClient`
Overrides:
  `setEolByte` in class `AbstractTCPClient`
Parameters:
  `eolInt` - The value to set