How to get the client(s)of an Arduino ethernet server?


i implement inactivity  timeout clients.
(it seems cannot connect arduino via ethernet because connection not closed)


how can that?

i have like:

loop() {
...
client incomingclient = server.available();
if (incomingclient) {
  [read received command , process it]
} else {
  // enter here if
  // no telnet connection
  // or no activity on telnet link
  incomingclient.println("disconnecting");    // <-- doesn't work obvisouly due if condition
  incomingclient.stop();                             // <-- doesn't work same reason
}
}



so question how can timeout ethernet connection?

thanks,
--
emmanuel

i used putty test simple "telnet". echos input serial monitor until enter 'x', or don't 10 seconds.

change network settings system.
code: [select]
#include <spi.h>
#include <ethernet.h>

byte mac[] = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed };
ipaddress ip( 192,168,2,2 );
ipaddress gateway( 192,168,2,1 );
ipaddress subnet( 255,255,255,0 );

ethernetserver server(23);

int loopcount = 0;

void setup()
{
 serial.begin(9600);
 pinmode(4,output);
 digitalwrite(4,high);
 ethernet.begin(mac, ip, gateway, gateway, subnet);
 delay(2000);
 server.begin();
 serial.println("ready");
}

void loop()
{
 ethernetclient client = server.available();

 if(client)
 {
   serial.println("client connected");
   client.flush();
   serial.flush();
   loopcount = 0;
   
   while (client.connected())
   {
     while(client.available())
     {
       char c = client.read();

       if(c == 'x') client.stop();
       else serial.write(c);

       loopcount = 0;
     }

     while(serial.available()) client.write(serial.read());

     delay(1);
     
     loopcount++;

     if(loopcount > 10000) client.stop();      
   }

   client.stop();
   serial.println("disconnected");
 }
}


edit: bad. forgot 1 client.stop(). fixed.
this persistent connection. not close until tell to.

i added serial response. while client connected, can send messages connected client serial monitor input.



Arduino Forum > Using Arduino > Networking, Protocols, and Devices (Moderator: fabioc84) > How to get the client(s)of an Arduino ethernet server?


arduino

Comments

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

listen to event