Test Server
Dependencies: EthernetInterface mbed-rtos mbed
Diff: main.cpp
- Revision:
- 0:762cc0d8a4fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Mar 04 20:21:43 2015 +0000 @@ -0,0 +1,63 @@ +#include "mbed.h" +#include "EthernetInterface.h" + +#define ECHO_SERVER_PORT 54321 + +#define IP "169.254.225.206" +#define GATEWAY "169.254.225.1" +#define MASK "255.255.0.0" + +#define LEN 18980 +uint16_t sample_array0[LEN]; + +DigitalOut led_red(LED_RED); +DigitalOut led_green(LED_GREEN); +DigitalOut led_blue(LED_BLUE); + +Serial pc(USBTX,USBRX); + +int main (void) { + for(int i = 0; i < LEN; i++) sample_array0[i] = ((0x0031<<8) | 0x0032); + sample_array0[0] = ('S'<<8)|'S'; + sample_array0[LEN-1] = ('F'<<8) | 'F'; + pc.baud(230400); + pc.printf("Starting test server\r\n"); + + EthernetInterface eth; + eth.init(IP, MASK, GATEWAY); + eth.connect(); + pc.printf("IP Address is %s\r\n", eth.getIPAddress()); + + TCPSocketServer server; + server.bind(ECHO_SERVER_PORT); + server.listen(); + + led_blue = 1; + led_green = 1; + led_red = 1; + + while (true) { + //pc.printf("\r\nWait for new connection...\r\n"); + + + TCPSocketConnection client; + server.accept(client); + client.set_blocking(true, 5000); + + //pc.printf("Connection from: %s\r\n", client.get_address()); + char buffer[1460]; // size of IP payload + while (true) { + int n = client.receive(buffer, sizeof(buffer)); + if (n <= 0) break; + pc.printf("Rec: %i: ",n); + + n = client.send_all((char *)sample_array0, LEN*2); + + if (n <= 0) {led_blue = 0; break;} + pc.printf("Sent %i: ",n); + } + + client.close(); + pc.printf("\r\n"); + } +} \ No newline at end of file