Simple TCP Echo Server

Dependencies:   EthernetInterface mbed-rtos mbed

Dependents:   HTTPDcgi

Legacy Warning

This is an mbed 2 example. To learn more about mbed OS 5, visit the docs.

Files at this revision

API Documentation at this revision

Comitter:
emilmont
Date:
Wed Aug 01 13:07:32 2012 +0000
Parent:
2:ec5ae99791da
Child:
4:807322f7570e
Commit message:
Update socket library

Changed in this revision

EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/EthernetInterface.lib	Tue Jul 31 11:51:28 2012 +0000
+++ b/EthernetInterface.lib	Wed Aug 01 13:07:32 2012 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/EthernetInterface/#f1b8651f8f29
+http://mbed.org/users/mbed_official/code/EthernetInterface/#0d9ae7845bfe
--- a/main.cpp	Tue Jul 31 11:51:28 2012 +0000
+++ b/main.cpp	Wed Aug 01 13:07:32 2012 +0000
@@ -1,6 +1,8 @@
 #include "mbed.h"
 #include "EthernetInterface.h"
 
+#define ECHO_SERVER_PORT   7
+
 int main (void) {
     EthernetInterface eth;
     eth.init(); //Use DHCP
@@ -8,24 +10,25 @@
     printf("IP Address is %s\n", eth.getIPAddress());
     
     TCPSocketServer server;
-    server.bind(7);
-    server.listen(1);
+    server.bind(ECHO_SERVER_PORT);
+    server.listen();
     
     while (true) {
         printf("\nWait for new connection...\n");
         TCPSocketConnection client;
         server.accept(client);
-        client.set_blocking(false);
+        client.set_blocking(false, 1500); // Timeout after (1.5)s
         
         printf("Connection from: %s\n", client.get_address());
         char buffer[256];
         while (true) {
-            int n = client.receive(buffer, 256);
+            int n = client.receive(buffer, sizeof(buffer));
             if (n <= 0) break;
             
             client.send_all(buffer, n);
             if (n <= 0) break;
         }
+        
         client.close();
     }
 }