tcp_socket lab

Dependencies:   mbed mbed-rtos EthernetInterface

Committer:
emilmont
Date:
Wed Jul 25 15:43:24 2012 +0000
Revision:
1:5cebe0e38cd2
Parent:
0:38cbb854d85f
Child:
2:ec5ae99791da
First implementation

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 1:5cebe0e38cd2 4 int main (void) {
emilmont 1:5cebe0e38cd2 5 EthernetInterface eth;
emilmont 1:5cebe0e38cd2 6 eth.init(); //Use DHCP
emilmont 1:5cebe0e38cd2 7 eth.connect();
emilmont 1:5cebe0e38cd2 8 printf("IP Address is %s\n", eth.getIPAddress());
emilmont 1:5cebe0e38cd2 9
emilmont 1:5cebe0e38cd2 10 TCPSocketServer server;
emilmont 1:5cebe0e38cd2 11 server.bind(7);
emilmont 1:5cebe0e38cd2 12 server.listen(1);
emilmont 1:5cebe0e38cd2 13
emilmont 1:5cebe0e38cd2 14 while (true) {
emilmont 1:5cebe0e38cd2 15 printf("\nWait for new connection...\n");
emilmont 1:5cebe0e38cd2 16 TCPSocketConnection client;
emilmont 1:5cebe0e38cd2 17 server.accept(client);
emilmont 1:5cebe0e38cd2 18
emilmont 1:5cebe0e38cd2 19 printf("Connection from: %s\n", client.get_address());
emilmont 1:5cebe0e38cd2 20 char buffer[256];
emilmont 1:5cebe0e38cd2 21 while (true) {
emilmont 1:5cebe0e38cd2 22 int n = client.receive(buffer, 256, 3000);
emilmont 1:5cebe0e38cd2 23 if (n <= 0) break;
emilmont 1:5cebe0e38cd2 24
emilmont 1:5cebe0e38cd2 25 client.send_all(buffer, n, 3000);
emilmont 1:5cebe0e38cd2 26 if (n <= 0) break;
emilmont 1:5cebe0e38cd2 27 }
emilmont 1:5cebe0e38cd2 28 client.close();
emilmont 1:5cebe0e38cd2 29 }
emilmont 1:5cebe0e38cd2 30 }