You can use the EthernetENC library. See the examples of Arduino Ethernet library on how to use Ethernet libraries for Arduino. EthernetClient object wraps a TCP socket. A normal TCP socket is connected to IP address and port. EthernetServer listens on a port. If server is contacted by a remote client socket, it creates a local socket connected with the remote client socket on a free port and returns a EthernetClient object wrapping the socket. Everything you write or print to a EthernetClient is send to that one remote socket. If the client board creates a EthernetClient and connects it to IP address and port of the EthernetServer on your 'server' board, then you get there a EthernetClient from server.available() and this two EthernetClient objects are connected. What you write/print on one side you read only from the EthernetClient object on the other side. client socket ``` if (client.connect(serverIP, PORT)) { client.print("request\n"); String response = client.readStringUntil('\n'); Serial.println(response); client.stop(); } ``` server side ``` EthernetClient client = server.available(); if (client && client.connected()) { String request = client.readStringUntil('\n'); Serial.println(request); client.print("response\n"); client.stop(); } ```