PMK 2018

Committer:
nenad
Date:
Fri May 11 15:42:03 2018 +0000
Revision:
0:9e3d8cb294c5
PMK2018;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nenad 0:9e3d8cb294c5 1 #if !FEATURE_LWIP
nenad 0:9e3d8cb294c5 2 #error [NOT_SUPPORTED] LWIP not supported for this target
nenad 0:9e3d8cb294c5 3 #endif
nenad 0:9e3d8cb294c5 4
nenad 0:9e3d8cb294c5 5 #include "mbed.h"
nenad 0:9e3d8cb294c5 6 #include "EthernetInterface.h"
nenad 0:9e3d8cb294c5 7 #include "TCPServer.h"
nenad 0:9e3d8cb294c5 8 #include "TCPSocket.h"
nenad 0:9e3d8cb294c5 9
nenad 0:9e3d8cb294c5 10 int main()
nenad 0:9e3d8cb294c5 11 {
nenad 0:9e3d8cb294c5 12 printf("Basic TCP server example\n");
nenad 0:9e3d8cb294c5 13
nenad 0:9e3d8cb294c5 14 EthernetInterface eth;
nenad 0:9e3d8cb294c5 15 eth.connect();
nenad 0:9e3d8cb294c5 16
nenad 0:9e3d8cb294c5 17 printf("The target IP address is '%s'\n", eth.get_ip_address());
nenad 0:9e3d8cb294c5 18
nenad 0:9e3d8cb294c5 19 TCPServer srv;
nenad 0:9e3d8cb294c5 20 TCPSocket clt_sock;
nenad 0:9e3d8cb294c5 21 SocketAddress clt_addr;
nenad 0:9e3d8cb294c5 22
nenad 0:9e3d8cb294c5 23 /* Open the server on ethernet stack */
nenad 0:9e3d8cb294c5 24 srv.open(&eth);
nenad 0:9e3d8cb294c5 25
nenad 0:9e3d8cb294c5 26 /* Bind the HTTP port (TCP 80) to the server */
nenad 0:9e3d8cb294c5 27 srv.bind(eth.get_ip_address(), 80);
nenad 0:9e3d8cb294c5 28
nenad 0:9e3d8cb294c5 29 /* Can handle 5 simultaneous connections */
nenad 0:9e3d8cb294c5 30 srv.listen(5);
nenad 0:9e3d8cb294c5 31
nenad 0:9e3d8cb294c5 32 while (true) {
nenad 0:9e3d8cb294c5 33 srv.accept(&clt_sock, &clt_addr);
nenad 0:9e3d8cb294c5 34 printf("accept %s:%d\n", clt_addr.get_ip_address(), clt_addr.get_port());
nenad 0:9e3d8cb294c5 35 char rbuffer[64];
nenad 0:9e3d8cb294c5 36 int rcount = clt_sock.recv(rbuffer, sizeof rbuffer);
nenad 0:9e3d8cb294c5 37 printf("received data %s\n", rbuffer);
nenad 0:9e3d8cb294c5 38 clt_sock.send(rbuffer, rcount);
nenad 0:9e3d8cb294c5 39 }
nenad 0:9e3d8cb294c5 40 }