TCPTest Server attempt

Dependencies:   EthernetNetIf mbed

Files at this revision

API Documentation at this revision

Comitter:
OTBsolar
Date:
Tue Mar 15 11:50:38 2011 +0000
Child:
1:7785624d8f35
Commit message:
beta

Changed in this revision

EthernetNetIf.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.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetNetIf.lib	Tue Mar 15 11:50:38 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/EthernetNetIf/#bc7df6da7589
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Mar 15 11:50:38 2011 +0000
@@ -0,0 +1,112 @@
+#include "mbed.h"
+#include "EthernetNetIf.h"
+#include "TCPSocket.h"
+
+EthernetNetIf eth;
+DigitalOut led1(LED1);
+
+
+TCPSocket tcp;  //The listening port where requests are queued
+TCPSocket* link; //The port where accepted requests can communicate
+
+void onTCPSocketEvent(TCPSocketEvent e)
+{
+    switch(e)
+    {
+        case TCPSOCKET_CONNECTED:
+            printf("Connected\n");
+        break;
+        
+        case TCPSOCKET_ACCEPT:
+            printf("Accepted\n");
+        break;
+        
+        case TCPSOCKET_READABLE:
+            printf("Readable\n");
+        break;
+        
+        case TCPSOCKET_WRITEABLE:
+            printf("Writeable\n");
+        break;
+        
+        case TCPSOCKET_CONTIMEOUT:
+            printf("Timeout\n");
+        break;
+        
+        case TCPSOCKET_CONRST:
+            printf("Reset\n");
+        break;
+        case TCPSOCKET_CONABRT:
+            printf("Aborted\n");
+        break;
+        
+        case TCPSOCKET_ERROR:
+            printf("Error\n");
+        break;
+        
+        case TCPSOCKET_DISCONNECTED:
+            printf("Disconnected\n");
+            tcp.close();
+        break;    
+    }
+}
+
+int main() {
+    //********Basic setup********
+    printf("Welcome to wireFUSE\n");
+    printf("Setting up...\n");
+    EthernetErr ethErr = eth.setup();
+    if(ethErr)
+    {
+        printf("Error %d in setup.\n", ethErr);
+        return -1;
+    }
+    printf("Setup OK\n");
+    //****End of basic setup*****
+    
+    tcp.setOnEvent(&onTCPSocketEvent); //Generate method
+    Host local(IpAddr(130,144,3,9), 12345); //mbed IP
+    Host client;
+  
+    Timer tmr;
+    tmr.start();
+    while(true)
+    {
+        Net::poll();
+        if(tmr.read() > 2)
+        {
+            tmr.reset();
+            led1=!led1; //Show that we are alive
+            
+            //Bind to local port
+            printf("Init bind..\n");
+            TCPSocketErr bindErr = tcp.bind(local);
+            if(bindErr == 0) {
+                printf("Bound to port\n");
+            }
+            else {
+                printf("Error %i\n",bindErr);
+            }
+            
+            //Listen to local port
+            printf("Init listen..\n");
+            TCPSocketErr listenErr = tcp.listen();
+            if(listenErr == 0) {
+                printf("Listening to port");
+            }
+            else {
+                printf("Error %i\n",listenErr);
+            }
+            
+            //Wait for a connection request
+            printf("waiting for client on port 12345");
+            TCPSocketErr accErr = tcp.accept(&local,&link);
+            if(accErr == 0) {
+                printf("Connection accepted\n");
+            }
+            else {
+                printf("Error opening connection\n");
+            }
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Mar 15 11:50:38 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e