oijoijoij

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPSocket_HelloWorld by mbed official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetInterface.h"
00003  
00004 #define IP         "192.168.1.10"
00005 #define GATEWAY    "192.168.1.1"
00006 #define MASK       "255.255.255.0"
00007 #define DES_ADDR   "192.168.1.12"
00008 #define DES_LAPTOP "192.168.1.11"
00009 
00010 #define PORT        54321
00011 
00012 Serial pc(USBTX,USBRX);
00013 
00014 int main() {
00015     
00016     int resul=-1;
00017     pc.baud(9600);
00018     
00019     /** Configuramos el puerto ethernet **************************************************/
00020     EthernetInterface eth;
00021     pc.printf("Inicializando el puerto ethernet... \n\r");
00022     //resul=eth.init(IP,MASK,GATEWAY); 
00023     resul=eth.init();
00024     if(resul==0)pc.printf("Puerto ethernet inicializado correctamente..\n\r");
00025     
00026     pc.printf("Obteniendo direccion IP...resul=%d\n\r",resul);
00027     resul=eth.connect();
00028     
00029     if(resul==0)
00030         pc.printf("IP Address is %s\n", eth.getIPAddress());
00031     else
00032         pc.printf("Fallo la conexion...IP Address is %s\n\r",eth.getIPAddress());
00033     /* Terminada la configuración del ethernet */
00034     
00035     /** Creamos el nodo servidor *****************************************************/
00036     TCPSocketServer server;             //crea el objeto de tipo servidor
00037     server.bind(PORT);                   //Enlaza el socket server a un puerto
00038     server.listen();                    //Queda escuchando por una nueva conexion.
00039     /*********************************************************************************/
00040     
00041     /** Esperamos por la conexion de un cliente **************************************/
00042     while (true) {
00043         printf("\nWait for new connection...\n\r");
00044         TCPSocketConnection client;     //creamos un nuevo cliente
00045         server.accept(client);          //aceptamos la conexión de una nuevo cliente
00046         client.set_blocking(true, 1500); // Timeout after (1.5)s
00047         
00048         printf("Connection from: %s\n", client.get_address());
00049         
00050         //Define useful variables
00051         char buffer[256];
00052         char command[20];
00053         
00054         
00055         while (true) {
00056             int n = client.receive(buffer, sizeof(buffer));
00057             if (n <= 0) break;
00058             
00059             // print received message to terminal
00060             buffer[n] = '\0';
00061             printf("Received message from Client :'%s'\n\r",buffer);
00062             
00063             sscanf(buffer,"%s",command);
00064             printf("Command detected :'%s'\n\r",command);
00065             
00066             if(strcmp(command,"Hello")==0)
00067             {
00068                     pc.printf("He recibido el comando Hello...\n\r");
00069                     sprintf(buffer,"%d",1);
00070                     client.send_all(buffer, sizeof(buffer));
00071             }        
00072             else
00073                     pc.printf("Command not identified.. \n\r");
00074         
00075             
00076             
00077                 /*printf("Received message from Client :'%s'\n\r",buffer); 
00078                 // reverse the message
00079                 char temp;
00080                 for(int f = 0, l = n-1; f<l; f++,l--){
00081                     temp = buffer[f];
00082                     buffer[f] = buffer[l];
00083                     buffer[l] = temp;
00084                     }
00085             
00086                  // print reversed message to terminal
00087                 printf("Sending message to Client: '%s'\n\r",buffer);
00088             
00089                 // Echo received message back to client
00090                 client.send_all(buffer, n);
00091                 if (n <= 0) break;*/
00092         }
00093         pc.printf("El cliente se ha desconectado..\n\r");
00094         client.close();
00095     }
00096         
00097 }