Alternative TCPSocket example using an HTTP GET to read a short "helloworld" text web page using a different server

Fork of ARMs demo HTTP socket demo. ARM's server was redirected and the demo was no longer working. An alternative server was setup and the code was modified to display the web page text in addition to just "200 OK". Only works for a very short web page - buffer only 500 characters but RAM is running out on the LPC1768 in the demo!

Committer:
4180_1
Date:
Thu Feb 04 20:17:42 2021 +0000
Revision:
3:576f312d2601
Parent:
1:965d7fb768b6
ver 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mab5449 0:6b383744246e 1 #include "mbed.h"
mab5449 0:6b383744246e 2 #include "EthernetInterface.h"
mab5449 0:6b383744246e 3
mab5449 0:6b383744246e 4 // Network interface
mab5449 0:6b383744246e 5 EthernetInterface net;
mab5449 0:6b383744246e 6
mab5449 0:6b383744246e 7 // Socket demo
mab5449 0:6b383744246e 8 int main() {
mab5449 0:6b383744246e 9 // Bring up the ethernet interface
4180_1 3:576f312d2601 10 printf("\n\rEthernet socket example\n\r");
mab5449 0:6b383744246e 11 net.connect();
mab5449 0:6b383744246e 12
mab5449 0:6b383744246e 13 // Show the network address
mab5449 0:6b383744246e 14 const char *ip = net.get_ip_address();
4180_1 3:576f312d2601 15 printf("IP address is: %s\n\r", ip ? ip : "No IP");
mab5449 0:6b383744246e 16
mab5449 0:6b383744246e 17 // Open a socket on the network interface, and create a TCP connection to mbed.org
mab5449 0:6b383744246e 18 TCPSocket socket;
mab5449 0:6b383744246e 19 socket.open(&net);
4180_1 3:576f312d2601 20 socket.connect("hamblen.ece.gatech.edu", 80);
mab5449 0:6b383744246e 21
mab5449 0:6b383744246e 22 // Send a simple http request
4180_1 3:576f312d2601 23 char sbuffer[] = "GET /hello.txt HTTP/1.1\r\nHost: hamblen.ece.gatech.edu\r\n\r\n";
mab5449 0:6b383744246e 24 int scount = socket.send(sbuffer, sizeof sbuffer);
4180_1 3:576f312d2601 25 //print out packet
mab5449 0:6b383744246e 26 printf("sent %d [%.*s]\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
mab5449 0:6b383744246e 27
4180_1 3:576f312d2601 28 // Recieve a simple http response and print out the response line and text
4180_1 3:576f312d2601 29 char rbuffer[400]; //enough for a very short text page - almost out of RAM!
mab5449 0:6b383744246e 30 int rcount = socket.recv(rbuffer, sizeof rbuffer);
4180_1 3:576f312d2601 31 printf("recv %d [%.*s]\n\r", rcount, strstr(rbuffer, "\r\n"), rbuffer);
mab5449 0:6b383744246e 32
mab5449 0:6b383744246e 33 // Close the socket to return its memory and bring down the network interface
mab5449 0:6b383744246e 34 socket.close();
mab5449 0:6b383744246e 35
mab5449 0:6b383744246e 36 // Bring down the ethernet interface
mab5449 0:6b383744246e 37 net.disconnect();
mab5449 0:6b383744246e 38 printf("Done\n");
mab5449 0:6b383744246e 39 }