oijoijoij

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPSocket_HelloWorld by mbed official

Committer:
educalle00
Date:
Thu Jul 02 22:18:36 2015 +0000
Revision:
17:a7c2054d0d3a
Parent:
16:b9b148b32ca8
TCP socket commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
educalle00 16:b9b148b32ca8 1 /*#include "mbed.h"
educalle00 16:b9b148b32ca8 2 #include "EthernetInterface.h"
educalle00 16:b9b148b32ca8 3
educalle00 16:b9b148b32ca8 4 #define PORT 54321
educalle00 16:b9b148b32ca8 5
educalle00 16:b9b148b32ca8 6 #define LEN_PACKET 1460
educalle00 16:b9b148b32ca8 7
educalle00 16:b9b148b32ca8 8 #define IP "192.168.0.10"
educalle00 16:b9b148b32ca8 9 #define GATEWAY "192.168.0.1"
educalle00 16:b9b148b32ca8 10 #define MASK "255.255.255.0"
educalle00 16:b9b148b32ca8 11 #define DES_ADDR "192.168.0.12"
educalle00 16:b9b148b32ca8 12 #define DES_LAPTOP "192.168.0.11"
educalle00 16:b9b148b32ca8 13
educalle00 16:b9b148b32ca8 14 #define LEN 18980
educalle00 16:b9b148b32ca8 15 uint16_t sample_array0[LEN];
educalle00 16:b9b148b32ca8 16
educalle00 16:b9b148b32ca8 17 Serial pc(USBTX,USBRX);
educalle00 16:b9b148b32ca8 18
educalle00 16:b9b148b32ca8 19 int main (void) {
educalle00 16:b9b148b32ca8 20 for(int i = 0; i < LEN; i++) sample_array0[i] = ((0x0031<<8) | 0x0032);
educalle00 16:b9b148b32ca8 21 pc.baud(9600);
educalle00 16:b9b148b32ca8 22 pc.printf("Starting test client\r\n");
educalle00 16:b9b148b32ca8 23 EthernetInterface eth;
educalle00 16:b9b148b32ca8 24 eth.init(IP, MASK, GATEWAY);
educalle00 16:b9b148b32ca8 25 eth.connect();
educalle00 16:b9b148b32ca8 26 pc.printf("IP Address is %s\r\n", eth.getIPAddress());
educalle00 16:b9b148b32ca8 27
educalle00 16:b9b148b32ca8 28 TCPSocketConnection mallet;
educalle00 16:b9b148b32ca8 29 mallet.set_blocking(false,5000);
educalle00 16:b9b148b32ca8 30 char buffer[LEN_PACKET];
educalle00 16:b9b148b32ca8 31
educalle00 16:b9b148b32ca8 32 for(int i = 0; i < LEN_PACKET; i++) buffer[i] = i;
educalle00 16:b9b148b32ca8 33 while (true) {
educalle00 16:b9b148b32ca8 34 if(pc.readable() > 0){
educalle00 16:b9b148b32ca8 35 char temp = pc.getc();
educalle00 16:b9b148b32ca8 36 int var = 0;
educalle00 16:b9b148b32ca8 37 switch(temp){
educalle00 16:b9b148b32ca8 38 case 'Q':
educalle00 16:b9b148b32ca8 39 case 'q':
educalle00 16:b9b148b32ca8 40 pc.printf("Intentando conectar a DES_LAPTOP (192.168.0.11) ..\n\r");
educalle00 16:b9b148b32ca8 41 var = mallet.connect(DES_LAPTOP,PORT);
educalle00 16:b9b148b32ca8 42 if(var == 0) pc.printf("Connected to laptop successfully\r\n");
educalle00 16:b9b148b32ca8 43 else if(var == -1) pc.printf("Connecting failed\r\n");
educalle00 16:b9b148b32ca8 44 break;
educalle00 16:b9b148b32ca8 45 case 'A':
educalle00 16:b9b148b32ca8 46 case 'a':
educalle00 16:b9b148b32ca8 47 pc.printf("Intentando conectar a DES_ACER (192.168.0.12) ..\n\r");
educalle00 16:b9b148b32ca8 48 var = mallet.connect(DES_ADDR,PORT);
educalle00 16:b9b148b32ca8 49 if(var == 0) pc.printf("Connected to ACER server successfully\r\n");
educalle00 16:b9b148b32ca8 50 else if(var == -1) pc.printf("Connecting failed\r\n");
educalle00 16:b9b148b32ca8 51 break;
educalle00 16:b9b148b32ca8 52 case 'S':
educalle00 16:b9b148b32ca8 53 case 's':
educalle00 16:b9b148b32ca8 54 pc.printf("Enviando informacion..\n\r");
educalle00 16:b9b148b32ca8 55 var = mallet.send(buffer,LEN_PACKET);
educalle00 16:b9b148b32ca8 56 pc.printf("Sent %i bytes\r\n",var);
educalle00 16:b9b148b32ca8 57 break;
educalle00 16:b9b148b32ca8 58 case 'D':
educalle00 16:b9b148b32ca8 59 case 'd':
educalle00 16:b9b148b32ca8 60 pc.printf("Recibiendo informacion..\n\r");
educalle00 16:b9b148b32ca8 61 var = mallet.receive_all((char *)sample_array0,LEN*2);
educalle00 16:b9b148b32ca8 62 pc.printf("Received %i bytes\r\n",var);
educalle00 16:b9b148b32ca8 63 break;
educalle00 16:b9b148b32ca8 64 case 'F':
educalle00 16:b9b148b32ca8 65 case 'f':
educalle00 16:b9b148b32ca8 66 pc.printf("Cerrando conexion..\n\r");
educalle00 16:b9b148b32ca8 67 var = mallet.close();
educalle00 16:b9b148b32ca8 68 if(var == 0) pc.printf("Connection closed\r\n");
educalle00 16:b9b148b32ca8 69 else pc.printf("Error while closing connection\r\n");
educalle00 16:b9b148b32ca8 70 break;
educalle00 16:b9b148b32ca8 71 case 'Z':
educalle00 16:b9b148b32ca8 72 case 'z':
educalle00 16:b9b148b32ca8 73 pc.printf("Status: ");
educalle00 16:b9b148b32ca8 74 if(mallet.is_connected()) pc.printf("Connected\r\n");
educalle00 16:b9b148b32ca8 75 else pc.printf("Not connected\r\n");
educalle00 16:b9b148b32ca8 76 break;
educalle00 16:b9b148b32ca8 77 case 'R':
educalle00 16:b9b148b32ca8 78 case 'r':
educalle00 16:b9b148b32ca8 79 pc.printf("Haciendo todo un proceso de abrir socket y enviar informacion..\n\r");
educalle00 16:b9b148b32ca8 80 // open connection
educalle00 16:b9b148b32ca8 81 var = mallet.connect(DES_ADDR,PORT);
educalle00 16:b9b148b32ca8 82 if(var == 0) pc.printf("Connected successfully\r\n");
educalle00 16:b9b148b32ca8 83 else if(var == -1) pc.printf("Connection already open\r\n");
educalle00 16:b9b148b32ca8 84
educalle00 16:b9b148b32ca8 85 // send data
educalle00 16:b9b148b32ca8 86 var = mallet.send(buffer,LEN_PACKET);
educalle00 16:b9b148b32ca8 87 pc.printf("Sent %i bytes\r\n",var);
educalle00 16:b9b148b32ca8 88
educalle00 16:b9b148b32ca8 89 // receive data
educalle00 16:b9b148b32ca8 90 var = mallet.receive_all((char *)sample_array0,LEN*2);
educalle00 16:b9b148b32ca8 91 pc.printf("Received %i bytes\r\n",var);
educalle00 16:b9b148b32ca8 92
educalle00 16:b9b148b32ca8 93 // closed connection
educalle00 16:b9b148b32ca8 94 var = mallet.close();
educalle00 16:b9b148b32ca8 95 if(var == 0) pc.printf("Connection closed\r\n\n");
educalle00 16:b9b148b32ca8 96 else pc.printf("Error while closing connection\r\n\n");
educalle00 16:b9b148b32ca8 97 break;
educalle00 16:b9b148b32ca8 98 case 'L':
educalle00 16:b9b148b32ca8 99 case 'l':
educalle00 16:b9b148b32ca8 100 for(int i = 0; i < 1000; i++){
educalle00 16:b9b148b32ca8 101 //wait_ms(100);
educalle00 16:b9b148b32ca8 102 pc.printf("%3i: ",i);
educalle00 16:b9b148b32ca8 103
educalle00 16:b9b148b32ca8 104 // open connection
educalle00 16:b9b148b32ca8 105 var = mallet.connect(DES_ADDR,PORT);
educalle00 16:b9b148b32ca8 106 if(var == -1) {i = 50; break;}
educalle00 16:b9b148b32ca8 107
educalle00 16:b9b148b32ca8 108 // send data
educalle00 16:b9b148b32ca8 109 var = mallet.send(buffer,LEN_PACKET);
educalle00 16:b9b148b32ca8 110 pc.printf("Sent %i: ",var);
educalle00 16:b9b148b32ca8 111 if(var == -1) {i = 50; break;}
educalle00 16:b9b148b32ca8 112
educalle00 16:b9b148b32ca8 113 // receive data
educalle00 16:b9b148b32ca8 114 var = mallet.receive_all((char *)sample_array0,LEN*2);
educalle00 16:b9b148b32ca8 115 pc.printf("Rec %i: ",var);
educalle00 16:b9b148b32ca8 116 if(var == -1) {i = 50; break;}
educalle00 16:b9b148b32ca8 117
educalle00 16:b9b148b32ca8 118 // closed connection
educalle00 16:b9b148b32ca8 119 var = mallet.close();
educalle00 16:b9b148b32ca8 120 if(var == -1) {i = 50; break;}
educalle00 16:b9b148b32ca8 121 pc.printf("\r\n");
educalle00 16:b9b148b32ca8 122
educalle00 16:b9b148b32ca8 123 }
educalle00 16:b9b148b32ca8 124 break;
educalle00 16:b9b148b32ca8 125 }
educalle00 16:b9b148b32ca8 126 }
educalle00 16:b9b148b32ca8 127 }
educalle00 16:b9b148b32ca8 128 }
educalle00 16:b9b148b32ca8 129 */