Ciao a tutti, è un po di tempo che provo a risolvere un problema sulla gestione delle connessioni TCP con la libreria Ethernet ma nulla.
In pratica io imposto Arduino come server che sta in ascolto su una determinata porta, e quando un client si collega manda delle stringhe. Il problema è se l'host (il pc da cui mi collego) si collega/scollega per più di 5 volte Arduino si inchioda e non comunica più.. E' una cosa strana, qulcuno di voi ha riscontrato lo stesso problema e sa come risolverlo ? O sbaglio io qualcosa ?
Vi posto il codice di esempio...
#include <Ethernet.h>
#include <stdio.h>
#include <String.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
byte gateway[] = { 10, 0, 0, 1 };
byte subnet[] = { 255, 255, 0, 0 };
int port = 23;
Server server(port);
byte endByte = 0;
void setup()
{
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
sendTCPcommand("1#1");
}
}
void sendTCPcommand(char* outTCPString){
for (int i = 0; i < strlen(outTCPString); i++) {
server.write(outTCPString[i]);
}
server.write(endByte);
delay(1000);
}
Grazie a tutti per l'aiuto