Hiroshi Yamaguchi / Mbed 2 deprecated SimpleSocketExamples 1.0

Dependencies:   EthernetNetIf SimpleSocket 1.0 mbed

Example/echoserver.cpp

Committer:
yamaguch
Date:
2011-08-19
Revision:
12:52170a866d4a
Parent:
11:04c0acd7f510
Child:
13:1adb19edf716

File content as of revision 12:52170a866d4a:

#include "mbed.h"
#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 *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);
                }
            }
        }
        blink(led2, timer);
    }
}

void blink(DigitalOut& led, Timer& timer, float interval) {
    if (timer.read() > interval) {
        timer.reset();
        timer.start();
        led = !led;
    }
}