Pages: [1]   Go Down
Author Topic: Problema comunicazione client (arduino) - server php  (Read 431 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao ragazzi,
ho un problema durante la comunizaione tra server e client.
Il client esegue la prima richiesta al server di un dato, il server risponde facendo un randon tra 1 e 100 e lo stampa con un echo, il client riceve la risposta poi tramite substring rimuovo tutto l'output del server ("HTTP 200 OK....") e tengo solamente il dato che mi interessa.
E qui viene il problema, il client esegue la prima richiesta ed elabora come sopra scritto, ma dopo continua a stampare sempre lo stesso dato come se non eseguisse più la GET verso il server.
Allego il codice di arduino e del server per capire meglio il problema.

Client arduino:
Code:
#include <SPI.h>
#include <Ethernet.h>

// ethernet mac address - must be unique on your network
byte mymac[] = { 0x90,0xA2,0xDA,0x00,0x3B,0xD4 };
// ethernet shield interface ip address
byte myip[] = { 192,168,1,10 };
// server ip address
byte srv[] = { 192,168,1,5 };
// inizialize connection to server
EthernetClient client;
// String with the server response
String serverResponse="";

void setup() {
  Ethernet.begin(mymac, myip);
  Serial.begin(9600);
 

  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  connection();
}

void connection() {
  Serial.print("connecting");
  delay(350);
  Serial.print(".");
  delay(350);
  Serial.print(".");
  delay(350);
  Serial.println(".");
 
  if(client.connect(srv, 80)) {
    Serial.println("connected!");
  }
  else {
    Serial.println("connection failed");
    Serial.println("retring");
    Serial.println("");
    connection();
  }
}

void request() {
    client.println("GET /WebServer/invio.php HTTP/1.0");
    client.println("HOST: localhost");
    client.println("");
}

void getResponse() {
     char c;
   
     while((c=client.read())!=-1){
     serverResponse=serverResponse+c;
    }
    int i=serverResponse.lastIndexOf('<')+1;
    int j=serverResponse.lastIndexOf('>');
    serverResponse=serverResponse.substring(i, j);
    Serial.println(serverResponse);
}

void loop() {
  request();
  getResponse();
  delay(100);
}

Server php:
Code:
<?php

$pend
=rand(1100);

echo 
'<'.$pend.'>';
Logged

Pages: [1]   Go Up
Jump to: