Hi
I just started to work with an Ethernetshield and i dont really get why my code is not working.
The description of the function says:
Returns the number of bytes available for reading (that is, the amount of data that has been written to the client by the server it is connected to).
I just made a few changes to the WebClient example from the ethernet library.
/*
Web client
This sketch connects to a website (http://www.google.com)
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
created 18 Dec 2009
modified 9 Apr 2012
by David A. Mellis
*/
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0x1A, 0x1D };
IPAddress server(192,168,195,104); // Google
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
Serial.println("go");
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;;)
;
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("GET /micha/arduino.php/?id=1");
client.println();
}
else {
// kf you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop()
{
if (client.connected())
Serial.println(client.available());
else
Serial.print("FUUU");
// if there are incoming bytes available
// from the server, read them and print them:
while (client.connected()){
if (client.available()) {
char c = client.read();
if (c != 13 && c != 10)
Serial.print(c);
}
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
//client.stop();
// do nothing forevermore:
for(;;)
;
}
}
the Serial.println(client.available());
line always prints out "0" ... As i understood from the description i would have to get a number of available bytes printed?
I need this, because i want to create a for loop to put all read data into an array. How can I do that? =/