I recommend a connected function in the EthernetServer class:
Code:
EthernetClient EthernetServer::connected()
{
accept();
for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
EthernetClient client(sock);
if (EthernetClass::_server_port[sock] == _port &&
(client.status() == SnSR::ESTABLISHED ||
(client.status() == SnSR::CLOSE_WAIT && client.available()))) {
return client;
}
}
return EthernetClient(MAX_SOCK_NUM);
}
{
accept();
for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
EthernetClient client(sock);
if (EthernetClass::_server_port[sock] == _port &&
(client.status() == SnSR::ESTABLISHED ||
(client.status() == SnSR::CLOSE_WAIT && client.available()))) {
return client;
}
}
return EthernetClient(MAX_SOCK_NUM);
}
regards: Tom