TCP Socket Hello World with Ethernet

Dependencies:   mbed mbed-rtos EthernetInterface

Dependents:   PLC_client lanGpio_2v0

mbed 2 and mbed OS 5

This is an mbed 2 example. For an mbed-os example, please see:

Import programmbed-os-example-sockets

This is a quick example of a simple HTTP client program using the network-socket API that is provided as a part of mbed-os. The program brings up an underlying network interface, and uses it to perform an HTTP transaction over a TCPSocket.

Committer:
Kojto
Date:
Wed May 14 15:07:26 2014 +0000
Revision:
14:72be2b8b7f24
Parent:
11:59dcefdda506
Update to the latest EthernetInterface and mbed RTOS revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:bb128f0e952f 1 #include "mbed.h"
donatien 0:bb128f0e952f 2 #include "EthernetInterface.h"
donatien 0:bb128f0e952f 3
emilmont 7:65188f4a8c25 4 int main() {
donatien 0:bb128f0e952f 5 EthernetInterface eth;
donatien 0:bb128f0e952f 6 eth.init(); //Use DHCP
donatien 0:bb128f0e952f 7 eth.connect();
emilmont 2:e087e9b789e9 8 printf("IP Address is %s\n", eth.getIPAddress());
donatien 0:bb128f0e952f 9
emilmont 7:65188f4a8c25 10 TCPSocketConnection sock;
donatien 0:bb128f0e952f 11 sock.connect("mbed.org", 80);
donatien 0:bb128f0e952f 12
emilmont 9:4757a976148d 13 char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\n\n";
emilmont 11:59dcefdda506 14 sock.send_all(http_cmd, sizeof(http_cmd)-1);
emilmont 7:65188f4a8c25 15
emilmont 9:4757a976148d 16 char buffer[300];
donatien 0:bb128f0e952f 17 int ret;
emilmont 7:65188f4a8c25 18 while (true) {
emilmont 9:4757a976148d 19 ret = sock.receive(buffer, sizeof(buffer)-1);
emilmont 7:65188f4a8c25 20 if (ret <= 0)
emilmont 7:65188f4a8c25 21 break;
emilmont 9:4757a976148d 22 buffer[ret] = '\0';
emilmont 9:4757a976148d 23 printf("Received %d chars from server:\n%s\n", ret, buffer);
emilmont 7:65188f4a8c25 24 }
donatien 0:bb128f0e952f 25
emilmont 7:65188f4a8c25 26 sock.close();
donatien 0:bb128f0e952f 27
emilmont 7:65188f4a8c25 28 eth.disconnect();
donatien 5:01f6c3e112af 29
emilmont 9:4757a976148d 30 while(1) {}
donatien 0:bb128f0e952f 31 }