Bruno Leme / Mbed 2 deprecated TCP

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetNetIf.h"
00003 #include "TCPSocket.h"
00004 
00005 
00006 
00007 EthernetNetIf eth;
00008 TCPSocket tcp;
00009 Host server(IpAddr(192,168,15,105), 2222);
00010 
00011 DigitalOut ledeth(LED1);
00012 DigitalOut ledhost(LED2);
00013 DigitalOut ledsendo(LED3);
00014 DigitalOut ledsende(LED4);
00015 
00016 
00017 struct
00018 {
00019     int connected;
00020     int writeable;
00021 }flags;
00022 
00023 
00024 void onTCPSocketEvent(TCPSocketEvent e)
00025 {
00026     //printf("New TCPSocketEvent: %d",e);
00027     switch(e)
00028     {
00029         case TCPSOCKET_CONNECTED:   flags.connected = 1;break;
00030         
00031         case TCPSOCKET_WRITEABLE:   flags.writeable = 1;break;
00032         
00033         case TCPSOCKET_CONTIMEOUT:
00034         case TCPSOCKET_CONRST:
00035         case TCPSOCKET_CONABRT:
00036         case TCPSOCKET_ERROR:
00037         case TCPSOCKET_DISCONNECTED:
00038         {
00039             tcp.close();
00040             flags.connected = 0;
00041         }break;
00042     }
00043 }
00044 
00045 void sendMessage(Host host, char* message, int msgLen)
00046 {   
00047 
00048     TCPSocketErr err = tcp.connect(host);
00049     if(err)
00050         ledhost=0;
00051         else
00052         ledhost=1;
00053                     
00054     if(/*flags.connected && flags.writeable*/true)
00055     {
00056        // printf("Sending data\n");
00057         flags.writeable = 0;
00058         int transLen = tcp.send(message,msgLen);
00059         if(transLen != msgLen)
00060         ledsende=1;
00061      //       printf("Error in transmission\n");
00062     }        
00063     tcp.close();
00064 }
00065 
00066 int main()
00067 {
00068     EthernetErr ethErr = eth.setup();
00069     if(ethErr)
00070       ledeth=0;
00071     else
00072        ledeth=1;
00073   
00074     tcp.setOnEvent(&onTCPSocketEvent);
00075     while(true)
00076     {
00077        Net::poll();
00078        sendMessage(server,"Hello Server\n",13);
00079        wait(5);
00080     } 
00081 }