From eac2983285b4bc40250771fb5141aa63c76a9a90 Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Wed, 30 Jul 2008 14:47:36 +0000 Subject: Adding ethernet library. --- .../Ethernet/examples/echo_server/echo_server.pde | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 libraries/Ethernet/examples/echo_server/echo_server.pde (limited to 'libraries/Ethernet/examples/echo_server/echo_server.pde') diff --git a/libraries/Ethernet/examples/echo_server/echo_server.pde b/libraries/Ethernet/examples/echo_server/echo_server.pde new file mode 100644 index 0000000..e16dcb9 --- /dev/null +++ b/libraries/Ethernet/examples/echo_server/echo_server.pde @@ -0,0 +1,53 @@ +/* + * Echo Server + * + * Echoes back the headers of the web request. Good for + * learning how the HTTP protocol works. + */ + +#include + +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; +byte ip[] = { 10, 0, 0, 177 }; + +Server server(80); + +void setup() +{ + Client client(255); + Ethernet.begin(mac, ip); + Serial.begin(9600); + server.begin(); +} + +void loop() +{ + char buf[512]; + int i = 0; + Client client = server.available(); + if (client) { + boolean previous_is_newline = false; + while (client.connected()) { + if (client.available()) { + char c = client.read(); + if (c == '\n' && previous_is_newline) { + buf[i] = 0; + client.println("HTTP/1.1 200 OK"); + client.println("Content-Type: text/html"); + client.println(); + client.println("
");
+          client.println(buf);
+          client.println("
"); + break; + } + if (i < 511) + buf[i++] = c; + if (c == '\n') + previous_is_newline = true; + else if (c != '\r') + previous_is_newline = false; + } + } + client.stop(); + } +} -- cgit v1.2.3-18-g5258