My experiments with the W7500 TCP Client

Dependencies:   WIZnetInterface mbed

Fork of TCPEchoServer-WIZwiki-W7500 by WIZnet

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();
     }
 }