communication between two arduinos using ENC28J60?
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(&quot;request\n&quot;);
     String response = client.readStringUntil('\n');
     Serial.println(response);
     client.stop();
   }

server side
   EthernetClient client = server.available();
   if (client &amp;&amp; client.connected()) {
     String request = client.readStringUntil('\n');
     Serial.println(request);
     client.print(&quot;response\n&quot;);
     client.stop();
   }