Hiroshi Yamaguchi / Mbed 2 deprecated SimpleSocketExamples 1.0

Dependencies:   EthernetNetIf SimpleSocket 1.0 mbed

Revision:
12:52170a866d4a
Parent:
11:04c0acd7f510
Child:
13:1adb19edf716
--- a/Example/echoserver.cpp	Thu Aug 18 09:51:08 2011 +0000
+++ b/Example/echoserver.cpp	Fri Aug 19 02:17:01 2011 +0000
@@ -2,34 +2,38 @@
 #include "EthernetNetIf.h"
 #include "SimpleSocket.h"
 
+void blink(DigitalOut& led, Timer& timer, float interval = 1.0);
+
 int echoserver(int port) {
+    printf("** echoserver **\n");
+    
     DigitalOut led1(LED1);
     DigitalOut led2(LED2);
-    
+
     ServerSocket server(port);
 
     Timer timer;
     timer.start();
 
     while (true) {
-        if (ClientSocket *clientSocket = server.accept()) {
-            while (clientSocket->connected()) {
-                char buf[8];
-                int len = clientSocket->read(buf, sizeof(buf));
-                if (len > 0)
-                    clientSocket->write(buf, len);
-
-                if (timer.read() > 10) {
-                    timer.reset();
-                    timer.start();
-                    led1 = !led1;
+        if (ClientSocket *socket = server.accept()) {
+            while (socket->connected()) {
+                if (socket->available()) {
+                    char buf[8];
+                    int len = socket->read(buf, sizeof(buf));
+                    if (len > 0) socket->write(buf, len);
+                    blink(led1, timer);
                 }
             }
         }
-        if (timer.read() > 1) {
-            timer.reset();
-            timer.start();
-            led2 = !led2;
-        }
+        blink(led2, timer);
+    }
+}
+
+void blink(DigitalOut& led, Timer& timer, float interval) {
+    if (timer.read() > interval) {
+        timer.reset();
+        timer.start();
+        led = !led;
     }
 }
\ No newline at end of file