TCP Server

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPEchoServer by mbed official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetInterface.h"
00003 
00004 #define ECHO_SERVER_PORT   7
00005 DigitalOut led1(LED1);
00006 DigitalOut led2(LED2);
00007 DigitalOut led3(LED3);
00008 DigitalOut led4(LED4);
00009 int x;
00010 
00011 int main (void) {
00012     EthernetInterface eth;
00013     eth.init(); //Use DHCP
00014     eth.connect();
00015     printf("IP Address is %s\n\r", eth.getIPAddress());
00016     
00017     TCPSocketServer server;
00018     server.bind(9999);
00019     server.listen();
00020     
00021     while (true) {
00022         printf("Wait for new connection...\n");
00023         TCPSocketConnection client;
00024         server.accept(client);
00025         //client.set_blocking(false, 1500); // Timeout after (1.5)s
00026         
00027         printf("Connection from: %s\n", client.get_address());
00028         char buffer[1];
00029         while (true) 
00030         {
00031             printf("%s",buffer);
00032             if(client.send(buffer, sizeof(buffer)))
00033             {
00034                 led1=1;
00035                 wait(1);
00036                 led1=0;   
00037             }
00038                 
00039                 int n = client.receive(buffer, sizeof(buffer));
00040                 if (n <= 0) break;
00041                 client.send_all(buffer, n);
00042                 if (n <= 0) break;
00043         }   
00044         client.close();
00045     }
00046 }