Official TCP Full speed benchmark
Dependencies: PicoTCP lpc1768-picotcp-eth mbed-rtos mbed
main.cpp
00001 #include <mbed.h> 00002 #include <stdarg.h> 00003 #include "EthernetInterface.h" 00004 00005 #define ECHO_SERVER_PORT 7 00006 #define BUFFER_QUANTITY (1024*1024) 00007 #define BUFFER_SIZE (1024) 00008 00009 EthernetInterface eth; 00010 00011 int main() 00012 { 00013 TCPSocketServer server; 00014 00015 printf("Started PicoTCP Full Benchmark....\n"); 00016 00017 eth.init(); 00018 printf("Waiting for DHCP server to give IP...\n"); 00019 00020 while(eth.connect() != 0); 00021 printf("IP address assigned : %s\n",eth.getIPAddress()); 00022 00023 server.bind(ECHO_SERVER_PORT); 00024 server.listen(); 00025 printf("Local server listening on port : %d\n",ECHO_SERVER_PORT); 00026 00027 00028 while (true) { 00029 printf("\n>>> You can start PicoTCP_Official_TCP_Full_Benchmark.py\n"); 00030 00031 TCPSocketConnection client; 00032 server.accept(client); 00033 client.set_blocking(true, 1500); // Timeout after (1.5)s 00034 char buffer[BUFFER_SIZE]; 00035 int dataSent = 0, dataReceived = 0; 00036 while(dataSent < BUFFER_QUANTITY) 00037 { 00038 while((dataReceived+dataSent) < 2*BUFFER_QUANTITY) 00039 { 00040 int n = client.receive(buffer, sizeof(buffer)); 00041 if (n <= 0) { 00042 break; 00043 } 00044 dataReceived += n; 00045 00046 n = client.send_all(buffer, n); 00047 if (n <= 0) { 00048 break; 00049 } 00050 dataSent += n; 00051 } 00052 } 00053 00054 if((dataSent+dataReceived) == 2*BUFFER_QUANTITY) 00055 { 00056 printf("You can read the Rx+Tx Throughput now \n"); 00057 } 00058 else 00059 { 00060 printf("Benchmark failed !\n"); 00061 } 00062 } 00063 }
Generated on Fri Jul 15 2022 13:56:57 by 1.7.2