Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf SimpleSocket 1.0 mbed
Diff: Example/echoserver.cpp
- Revision:
- 12:52170a866d4a
- Parent:
- 11:04c0acd7f510
- Child:
- 13:1adb19edf716
--- a/Example/echoserver.cpp Thu Aug 18 09:51:08 2011 +0000 +++ b/Example/echoserver.cpp Fri Aug 19 02:17:01 2011 +0000 @@ -2,34 +2,38 @@ #include "EthernetNetIf.h" #include "SimpleSocket.h" +void blink(DigitalOut& led, Timer& timer, float interval = 1.0); + int echoserver(int port) { + printf("** echoserver **\n"); + DigitalOut led1(LED1); DigitalOut led2(LED2); - + ServerSocket server(port); Timer timer; timer.start(); while (true) { - if (ClientSocket *clientSocket = server.accept()) { - while (clientSocket->connected()) { - char buf[8]; - int len = clientSocket->read(buf, sizeof(buf)); - if (len > 0) - clientSocket->write(buf, len); - - if (timer.read() > 10) { - timer.reset(); - timer.start(); - led1 = !led1; + if (ClientSocket *socket = server.accept()) { + while (socket->connected()) { + if (socket->available()) { + char buf[8]; + int len = socket->read(buf, sizeof(buf)); + if (len > 0) socket->write(buf, len); + blink(led1, timer); } } } - if (timer.read() > 1) { - timer.reset(); - timer.start(); - led2 = !led2; - } + blink(led2, timer); + } +} + +void blink(DigitalOut& led, Timer& timer, float interval) { + if (timer.read() > interval) { + timer.reset(); + timer.start(); + led = !led; } } \ No newline at end of file