TCPTest Server attempt
Dependencies: EthernetNetIf mbed
main.cpp
- Committer:
- OTBsolar
- Date:
- 2011-03-15
- Revision:
- 0:f8aba92e4c46
- Child:
- 1:7785624d8f35
File content as of revision 0:f8aba92e4c46:
#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"); } } } }