]> git.gir.st - tmk_keyboard.git/blob - tool/mbed/mbed-sdk/libraries/tests/net/echo/tcp_server/main.cpp
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[tmk_keyboard.git] / tool / mbed / mbed-sdk / libraries / tests / net / echo / tcp_server / main.cpp
1 #include "mbed.h"
2 #include "test_env.h"
3 #include "EthernetInterface.h"
4
5 namespace {
6 const int ECHO_SERVER_PORT = 7;
7 const int BUFFER_SIZE = 64;
8 }
9
10 int main (void) {
11 MBED_HOSTTEST_TIMEOUT(20);
12 MBED_HOSTTEST_SELECT(tcpecho_server_auto);
13 MBED_HOSTTEST_DESCRIPTION(TCP echo server);
14 MBED_HOSTTEST_START("NET_3");
15
16 char buffer[BUFFER_SIZE] = {0};
17 EthernetInterface eth;
18 eth.init(); //Use DHCP
19 eth.connect();
20 printf("MBED: Server IP Address is %s:%d" NL, eth.getIPAddress(), ECHO_SERVER_PORT);
21
22 TCPSocketServer server;
23 server.bind(ECHO_SERVER_PORT);
24 server.listen();
25
26 while (true) {
27 printf("MBED: Wait for new connection..." NL);
28 TCPSocketConnection client;
29 server.accept(client);
30 client.set_blocking(false, 1500); // Timeout after (1.5)s
31 printf("MBED: Connection from: %s" NL, client.get_address());
32
33 while (true) {
34 const int n = client.receive(buffer, sizeof(buffer));
35 if (n <= 0) {
36 break;
37 }
38 const int buffer_string_end_index = n >= BUFFER_SIZE ? BUFFER_SIZE-1 : n;
39 buffer[buffer_string_end_index] = '\0';
40 client.send_all(buffer, n);
41 if (n <= 0) {
42 break;
43 }
44 }
45 client.close();
46 }
47 }
Imprint / Impressum