I tested the GenericTCPClient.zip file shared by Archie and verified its functionality in both directions using Hercules.
Configuration: Set to localhost 127.0.0.1, Port=7001
TerminatingByteValue (not TerminatingCharacters) is set to 10 (LF).
Client to Server Communication:
The client sent "1234" & <CR> using TCPClient.SendString(TxtSend.Text & vbCr).
Observed that a <LF> was automatically appended at the end.
Server to Client Communication:The server sent "test from server$0D$0A", and the client successfully received it, stripping the <LF> terminating character. The <CR> is in the data , but not display in the text box.