![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
8ABELI Socket Programming
Dependencies: mbed mbed-rtos EthernetInterface
main.cpp
- Committer:
- fpucher
- Date:
- 2020-03-23
- Revision:
- 8:2c91833ef350
- Parent:
- 7:a5ead1402704
File content as of revision 8:2c91833ef350:
// https://developer.mbed.org/handbook/Socket #include "mbed.h" #include "EthernetInterface.h" #define ECHO_SERVER_PORT 7 class Blinky { DigitalOut _myled; int zahl; public: Blinky(PinName ld) : _myled(ld), zahl(0) {} void LedOn() { _myled = 1; } void LedOff() { _myled = 0; } }; Blinky bl(LED1); int main (void) { EthernetInterface eth; eth.init(); //Use DHCP eth.connect(); printf("\nServer IP Address is %s\n", eth.getIPAddress()); TCPSocketServer server; server.bind(ECHO_SERVER_PORT); server.listen(); while (true) { printf("\nWait for new connection...\n"); TCPSocketConnection client; server.accept(client); client.set_blocking(false, 1500); // Timeout after (1.5)s printf("Connection from: %s\n", client.get_address()); char buffer[256]; while (true) { int n = client.receive(buffer, sizeof(buffer)); if (n <= 0) break; // print received message to terminal buffer[n] = '\0'; printf("Received message from Client :'%s'\n",buffer); // reverse the message char temp; for(int f = 0, l = n-1; f<l; f++,l--){ temp = buffer[f]; buffer[f] = buffer[l]; buffer[l] = temp; } // print reversed message to terminal printf("Sending message to Client: '%s'\n",buffer); bl.LedOn(); wait(0.5); bl.LedOff(); wait(0.5); // Echo received message back to client client.send_all(buffer, n); if (n <= 0) break; } client.close(); } }