Limitare socket alla EtheretServer

Ho fatto un'altra modifica alla EthernetServer.
Il problema era che la EthernetServer metteva tutti i socket in ascolto, ma se volessi assegnargli sono 2 socket perché gli altri due li voglio usare come client mi era impossibile. Allora ho aggiunto questa funzione:

void EthernetServer::begin(uint8_t numSock )
{
  for (int sock = 0; sock < MAX_SOCK_NUM && sock <= numSock; sock++) {
    EthernetClient client(sock);
    if (client.status() == SnSR::CLOSED) {
      socket(sock, SnMR::TCP, _port, 0);
      listen(sock);
      EthernetClass::_server_port[sock] = _port;
      break;
    }
  }  
}

Vedrò se riesco anche a fare qualcosa in modo da rendere dinamica l'assegnazione dei socket, ma la vedo dura.