Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-os-example-mbed5-wifi by
Diff: main.cpp
- Revision:
- 24:323569a565ec
- Parent:
- 21:b2f2f6a840b4
- Child:
- 32:bca3f5f442b3
--- a/main.cpp Wed Jul 05 13:15:03 2017 +0100
+++ b/main.cpp Fri Jul 07 10:00:03 2017 +0100
@@ -81,22 +81,45 @@
void http_demo(NetworkInterface *net)
{
TCPSocket socket;
+ nsapi_error_t response;
printf("Sending HTTP request to www.arm.com...\r\n");
// Open a socket on the network interface, and create a TCP connection to www.arm.com
socket.open(net);
- socket.connect("www.arm.com", 80);
+ response = socket.connect("www.arm.com", 80);
+ if(0 != response) {
+ printf("Error connecting: %d\r\n", response);
+ socket.close();
+ return;
+ }
// Send a simple http request
char sbuffer[] = "GET / HTTP/1.1\r\nHost: www.arm.com\r\n\r\n";
- int scount = socket.send(sbuffer, sizeof sbuffer);
- printf("sent %d [%.*s]\r\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
+ nsapi_size_t size = sizeof sbuffer;
+ response = 0;
+ while(size)
+ {
+ response = socket.send(sbuffer+response, size);
+ if (response < 0) {
+ printf("Error sending data: %d\r\n", response);
+ socket.close();
+ return;
+ } else {
+ size -= response;
+ // Check if entire message was sent or not
+ printf("sent %d [%.*s]\r\n", response, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
+ }
+ }
// Recieve a simple http response and print out the response line
char rbuffer[64];
- int rcount = socket.recv(rbuffer, sizeof rbuffer);
- printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
+ response = socket.recv(rbuffer, sizeof rbuffer);
+ if (response < 0) {
+ printf("Error receiving data: %d\r\n", response);
+ } else {
+ printf("recv %d [%.*s]\r\n", response, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
+ }
// Close the socket to return its memory and bring down the network interface
socket.close();
