oijoijoij

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPSocket_HelloWorld by mbed official

main.cpp

Committer:
educalle00
Date:
2015-07-02
Revision:
16:b9b148b32ca8
Parent:
11:59dcefdda506

File content as of revision 16:b9b148b32ca8:

#include "mbed.h"
#include "EthernetInterface.h"
 
#define IP         "192.168.1.10"
#define GATEWAY    "192.168.1.1"
#define MASK       "255.255.255.0"
#define DES_ADDR   "192.168.1.12"
#define DES_LAPTOP "192.168.1.11"

#define PORT        54321

Serial pc(USBTX,USBRX);

int main() {
    
    int resul=-1;
    pc.baud(9600);
    
    /** Configuramos el puerto ethernet **************************************************/
    EthernetInterface eth;
    pc.printf("Inicializando el puerto ethernet... \n\r");
    //resul=eth.init(IP,MASK,GATEWAY); 
    resul=eth.init();
    if(resul==0)pc.printf("Puerto ethernet inicializado correctamente..\n\r");
    
    pc.printf("Obteniendo direccion IP...resul=%d\n\r",resul);
    resul=eth.connect();
    
    if(resul==0)
        pc.printf("IP Address is %s\n", eth.getIPAddress());
    else
        pc.printf("Fallo la conexion...IP Address is %s\n\r",eth.getIPAddress());
    /* Terminada la configuración del ethernet */
    
    /** Creamos el nodo servidor *****************************************************/
    TCPSocketServer server;             //crea el objeto de tipo servidor
    server.bind(PORT);                   //Enlaza el socket server a un puerto
    server.listen();                    //Queda escuchando por una nueva conexion.
    /*********************************************************************************/
    
    /** Esperamos por la conexion de un cliente **************************************/
    while (true) {
        printf("\nWait for new connection...\n\r");
        TCPSocketConnection client;     //creamos un nuevo cliente
        server.accept(client);          //aceptamos la conexión de una nuevo cliente
        client.set_blocking(true, 1500); // Timeout after (1.5)s
        
        printf("Connection from: %s\n", client.get_address());
        
        //Define useful variables
        char buffer[256];
        char command[20];
        
        
        while (true) {
            int n = client.receive(buffer, sizeof(buffer));
            if (n <= 0) break;
            
            // print received message to terminal
            buffer[n] = '\0';
            printf("Received message from Client :'%s'\n\r",buffer);
            
            sscanf(buffer,"%s",command);
            printf("Command detected :'%s'\n\r",command);
            
            if(strcmp(command,"Hello")==0)
            {
                    pc.printf("He recibido el comando Hello...\n\r");
                    sprintf(buffer,"%d",1);
                    client.send_all(buffer, sizeof(buffer));
            }        
            else
                    pc.printf("Command not identified.. \n\r");
        
            
            
                /*printf("Received message from Client :'%s'\n\r",buffer); 
                // reverse the message
                char temp;
                for(int f = 0, l = n-1; f<l; f++,l--){
                    temp = buffer[f];
                    buffer[f] = buffer[l];
                    buffer[l] = temp;
                    }
            
                 // print reversed message to terminal
                printf("Sending message to Client: '%s'\n\r",buffer);
            
                // Echo received message back to client
                client.send_all(buffer, n);
                if (n <= 0) break;*/
        }
        pc.printf("El cliente se ha desconectado..\n\r");
        client.close();
    }
        
}