oijoijoij

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPSocket_HelloWorld by mbed official

Revision:
16:b9b148b32ca8
Parent:
11:59dcefdda506
--- a/main.cpp	Sun Sep 21 05:55:13 2014 +0000
+++ b/main.cpp	Thu Jul 02 21:03:39 2015 +0000
@@ -1,31 +1,97 @@
 #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;
-    eth.init(); //Use DHCP
-    eth.connect();
-    printf("IP Address is %s\n", eth.getIPAddress());
+    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();
     
-    TCPSocketConnection sock;
-    sock.connect("mbed.org", 80);
+    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 */
     
-    char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\n\n";
-    sock.send_all(http_cmd, sizeof(http_cmd)-1);
+    /** 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.
+    /*********************************************************************************/
     
-    char buffer[300];
-    int ret;
+    /** Esperamos por la conexion de un cliente **************************************/
     while (true) {
-        ret = sock.receive(buffer, sizeof(buffer)-1);
-        if (ret <= 0)
-            break;
-        buffer[ret] = '\0';
-        printf("Received %d chars from server:\n%s\n", ret, buffer);
+        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();
     }
-      
-    sock.close();
-    
-    eth.disconnect();
-    
-    while(1) {}
-}
+        
+}
\ No newline at end of file