TCP Server

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPEchoServer by mbed official

Committer:
saragbolivar
Date:
Mon Jul 07 19:26:10 2014 +0000
Revision:
7:c045f75aa643
Parent:
3:36fd3cfad85a
TCPEchoServer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:38cbb854d85f 1 #include "mbed.h"
emilmont 1:5cebe0e38cd2 2 #include "EthernetInterface.h"
emilmont 1:5cebe0e38cd2 3
emilmont 3:36fd3cfad85a 4 #define ECHO_SERVER_PORT 7
saragbolivar 7:c045f75aa643 5 DigitalOut led1(LED1);
saragbolivar 7:c045f75aa643 6 DigitalOut led2(LED2);
saragbolivar 7:c045f75aa643 7 DigitalOut led3(LED3);
saragbolivar 7:c045f75aa643 8 DigitalOut led4(LED4);
saragbolivar 7:c045f75aa643 9 int x;
emilmont 3:36fd3cfad85a 10
emilmont 1:5cebe0e38cd2 11 int main (void) {
emilmont 1:5cebe0e38cd2 12 EthernetInterface eth;
emilmont 1:5cebe0e38cd2 13 eth.init(); //Use DHCP
emilmont 1:5cebe0e38cd2 14 eth.connect();
saragbolivar 7:c045f75aa643 15 printf("IP Address is %s\n\r", eth.getIPAddress());
emilmont 1:5cebe0e38cd2 16
emilmont 1:5cebe0e38cd2 17 TCPSocketServer server;
saragbolivar 7:c045f75aa643 18 server.bind(9999);
emilmont 3:36fd3cfad85a 19 server.listen();
emilmont 1:5cebe0e38cd2 20
emilmont 1:5cebe0e38cd2 21 while (true) {
saragbolivar 7:c045f75aa643 22 printf("Wait for new connection...\n");
emilmont 1:5cebe0e38cd2 23 TCPSocketConnection client;
emilmont 1:5cebe0e38cd2 24 server.accept(client);
saragbolivar 7:c045f75aa643 25 //client.set_blocking(false, 1500); // Timeout after (1.5)s
emilmont 1:5cebe0e38cd2 26
emilmont 1:5cebe0e38cd2 27 printf("Connection from: %s\n", client.get_address());
saragbolivar 7:c045f75aa643 28 char buffer[1];
saragbolivar 7:c045f75aa643 29 while (true)
saragbolivar 7:c045f75aa643 30 {
saragbolivar 7:c045f75aa643 31 printf("%s",buffer);
saragbolivar 7:c045f75aa643 32 if(client.send(buffer, sizeof(buffer)))
saragbolivar 7:c045f75aa643 33 {
saragbolivar 7:c045f75aa643 34 led1=1;
saragbolivar 7:c045f75aa643 35 wait(1);
saragbolivar 7:c045f75aa643 36 led1=0;
saragbolivar 7:c045f75aa643 37 }
saragbolivar 7:c045f75aa643 38
saragbolivar 7:c045f75aa643 39 int n = client.receive(buffer, sizeof(buffer));
saragbolivar 7:c045f75aa643 40 if (n <= 0) break;
saragbolivar 7:c045f75aa643 41 client.send_all(buffer, n);
saragbolivar 7:c045f75aa643 42 if (n <= 0) break;
saragbolivar 7:c045f75aa643 43 }
emilmont 1:5cebe0e38cd2 44 client.close();
emilmont 1:5cebe0e38cd2 45 }
emilmont 1:5cebe0e38cd2 46 }