TCPTest Server attempt

Dependencies:   EthernetNetIf mbed

Revision:
0:f8aba92e4c46
Child:
1:7785624d8f35
--- /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