Simple Client TCP for FRDM

Dependencies:   EthernetInterface-FRDM mbed-rtos mbed

Fork of CyaSSL-EchoClient by wolf SSL

Revision:
5:b74ac4acd827
Parent:
4:3cd5b93387c7
--- a/main.cpp	Sat Feb 07 11:37:42 2015 +0000
+++ b/main.cpp	Sat Feb 07 18:39:41 2015 +0000
@@ -19,6 +19,7 @@
         n = socket.receive(buf, sz) ;
         if(n >= 0)return n  ;
     }
+    printf("SocketReceive:%d/%d\n", n, sz)  ;
     return n ;
 }
 
@@ -29,11 +30,21 @@
     n = socket.send(buf, sz);
     if(n > 0) {
         return n ;
-    } 
+    } else  printf("SocketSend:%d/%d\n", n, sz);
     return n ;
 }
 end SSL ***/
 
+void getline(char *line, int size) {
+    for(int i=0; i<size; i++) {
+        if((line[i] = getchar()) == '\r') {
+            line[i] = '\0' ;
+            putchar('\n') ;
+            break ;
+        } else putchar(line[i]) ;
+    }
+}
+
 EthernetInterface eth;
 
 void net_main(void const *av)
@@ -46,6 +57,8 @@
     CYASSL_METHOD* method = CyaTLSv1_2_client_method();
     end SSL ***/
 
+
+
     /* Initialize CyaSSL Context */
     /*** SSL
     ctx = CyaSSL_CTX_new(method);
@@ -58,8 +71,7 @@
 
     socket.set_blocking(false, 300) ;
     printf("Server IP: ") ;
-    scanf("%s", server_ip) ; 
-    puts(server_ip) ;
+    getline(server_ip, sizeof(server_ip)) ; 
 
     while (socket.connect(server_ip, PORT) < 0) {
         printf("Unable to connect to (%s) on port (%d)\n", server_ip, PORT);
@@ -80,23 +92,23 @@
     printf("SSL Connected\n") ;
     ***/
 
-    char msg[] = "GET / HTTP/1.0\r\n\r\n" ;
-
+    char msg[] = "GET /index.html HTTP/1.0\r\nConnection: Close\r\n\r\n" ;
+    printf("Client Request: \n%s\n",msg) ;
     if (/*** SSL   CyaSSL_write(ssl, end SSL***/
         socket.send(msg, sizeof(msg)-1) != (sizeof(msg)-1))
         err_sys("CyaSSL_write failed");
-    printf("Client Request: \n%s\n",msg) ;
+
     char buf[1024];
     int n ;
     puts("Server Response:\n") ;
     do {
         n = /*** SSL  CyaSSL_read(ssl, end SSL ***/
             socket.receive(buf, sizeof(buf)-1);
-        if (n > 0) {
+        if (n >= 0) {
             buf[n] = 0;
             printf("%s", buf);
         } else
-            break ;
+            err_sys("CyaSSL_read failed");
     } while(n > 0) ;
     puts("=== === === ===") ;
     /*** SSL    CyaSSL_free(ssl) ; ***/