EthernetInterface, TCP Echo Server, support multi session

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPEchoServer by mbed official

mbed RTOS により、マルチセッションに対応した TCP Echo Server です。

複数のTCP接続を受付け、処理することができます。

accept の後に fork (スレッドを生成)しています。

Files at this revision

API Documentation at this revision

Comitter:
emilmont
Date:
Wed Jul 25 15:43:24 2012 +0000
Parent:
0:38cbb854d85f
Child:
2:ec5ae99791da
Commit message:
First implementation

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
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetInterface.lib	Wed Jul 25 15:43:24 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/EthernetInterface/#fd9597f1b81b
--- a/main.cpp	Wed Jul 25 15:38:39 2012 +0000
+++ b/main.cpp	Wed Jul 25 15:43:24 2012 +0000
@@ -1,1 +1,30 @@
 #include "mbed.h"
+#include "EthernetInterface.h"
+
+int main (void) {
+    EthernetInterface eth;
+    eth.init(); //Use DHCP
+    eth.connect();
+    printf("IP Address is %s\n", eth.getIPAddress());
+    
+    TCPSocketServer server;
+    server.bind(7);
+    server.listen(1);
+    
+    while (true) {
+        printf("\nWait for new connection...\n");
+        TCPSocketConnection client;
+        server.accept(client);
+        
+        printf("Connection from: %s\n", client.get_address());
+        char buffer[256];
+        while (true) {
+            int n = client.receive(buffer, 256, 3000);
+            if (n <= 0) break;
+            
+            client.send_all(buffer, n, 3000);
+            if (n <= 0) break;
+        }
+        client.close();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Wed Jul 25 15:43:24 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#4238c328365e