Nenad Jovicic
/
mbed-os-PMK2018_tcp_client
A small example of TCP server over ethernet for mbed-os.
main.cpp@3:48f60b2918aa, 2018-05-11 (annotated)
- Committer:
- nenad
- Date:
- Fri May 11 15:40:50 2018 +0000
- Revision:
- 3:48f60b2918aa
- Parent:
- 1:ec61ea9f67de
PMK2018;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
group-ST | 0:6e8275981824 | 1 | #include "mbed.h" |
nenad | 3:48f60b2918aa | 2 | #include "TCPSocket.h" |
group-ST | 0:6e8275981824 | 3 | #include "EthernetInterface.h" |
group-ST | 0:6e8275981824 | 4 | |
nenad | 3:48f60b2918aa | 5 | EthernetInterface eth; |
nenad | 3:48f60b2918aa | 6 | TCPSocket socket; |
group-ST | 0:6e8275981824 | 7 | |
group-ST | 0:6e8275981824 | 8 | int main() |
group-ST | 0:6e8275981824 | 9 | { |
nenad | 3:48f60b2918aa | 10 | printf("Basic TCP client example\n"); |
nenad | 3:48f60b2918aa | 11 | |
nenad | 3:48f60b2918aa | 12 | // Brings up the network interface |
group-ST | 0:6e8275981824 | 13 | eth.connect(); |
nenad | 3:48f60b2918aa | 14 | const char *ip = eth.get_ip_address(); |
nenad | 3:48f60b2918aa | 15 | const char *mac = eth.get_mac_address(); |
nenad | 3:48f60b2918aa | 16 | printf("IP address is: %s\n", ip ? ip : "No IP"); |
nenad | 3:48f60b2918aa | 17 | printf("MAC address is: %s\n", mac ? mac : "No MAC"); |
nenad | 3:48f60b2918aa | 18 | |
nenad | 3:48f60b2918aa | 19 | // Open a socket on the network interface, and create a TCP connection to mbed.org |
nenad | 3:48f60b2918aa | 20 | socket.open(ð); |
nenad | 3:48f60b2918aa | 21 | socket.connect("192.168.0.108", 80); |
nenad | 3:48f60b2918aa | 22 | |
nenad | 3:48f60b2918aa | 23 | // Send data |
nenad | 3:48f60b2918aa | 24 | char sbuffer[] = "12345"; |
nenad | 3:48f60b2918aa | 25 | int scount = socket.send(sbuffer, sizeof sbuffer); |
nenad | 3:48f60b2918aa | 26 | printf("sent %d [%.*s]\r\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer); |
nenad | 3:48f60b2918aa | 27 | |
nenad | 3:48f60b2918aa | 28 | // Recieve a simple http response and print out the response line |
nenad | 3:48f60b2918aa | 29 | char rbuffer[64]; |
nenad | 3:48f60b2918aa | 30 | int rcount = socket.recv(rbuffer, sizeof rbuffer); |
nenad | 3:48f60b2918aa | 31 | printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer); |
nenad | 3:48f60b2918aa | 32 | |
nenad | 3:48f60b2918aa | 33 | // Close the socket to return its memory and bring down the network interface |
nenad | 3:48f60b2918aa | 34 | socket.close(); |
nenad | 3:48f60b2918aa | 35 | eth.disconnect(); |
nenad | 3:48f60b2918aa | 36 | |
nenad | 3:48f60b2918aa | 37 | printf("Done\n"); |
nenad | 3:48f60b2918aa | 38 | } |