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 net-test by
main.cpp@1:e01aa8a340ad, 2016-11-09 (annotated)
- Committer:
- infinnovation
- Date:
- Wed Nov 09 21:45:12 2016 +0000
- Revision:
- 1:e01aa8a340ad
- Parent:
- 0:dcf432232b87
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
infinnovation | 1:e01aa8a340ad | 1 | #include <mbed.h> |
infinnovation | 1:e01aa8a340ad | 2 | #include <EthernetInterface.h> |
infinnovation | 1:e01aa8a340ad | 3 | |
infinnovation | 1:e01aa8a340ad | 4 | struct TestAddr { |
infinnovation | 1:e01aa8a340ad | 5 | const char *host; |
infinnovation | 1:e01aa8a340ad | 6 | unsigned port; |
infinnovation | 1:e01aa8a340ad | 7 | }; |
infinnovation | 0:dcf432232b87 | 8 | |
infinnovation | 1:e01aa8a340ad | 9 | #define GOOD_HOST "192.168.3.1" |
infinnovation | 1:e01aa8a340ad | 10 | #define BAD_HOST "192.168.3.2" |
infinnovation | 1:e01aa8a340ad | 11 | #define BAD_NET "239.9.9.9" // Multicast |
infinnovation | 1:e01aa8a340ad | 12 | |
infinnovation | 1:e01aa8a340ad | 13 | const TestAddr test_addrs[] = { |
infinnovation | 1:e01aa8a340ad | 14 | {GOOD_HOST, 2}, // port 2 not open; get ECONNREFUSED on Linux |
infinnovation | 1:e01aa8a340ad | 15 | {BAD_HOST, 80}, // get EHOSTUNREACH on Linux |
infinnovation | 1:e01aa8a340ad | 16 | {BAD_NET, 99}, // get ENETUNREACH on Linux |
infinnovation | 1:e01aa8a340ad | 17 | }; |
infinnovation | 0:dcf432232b87 | 18 | |
infinnovation | 0:dcf432232b87 | 19 | EthernetInterface eth; |
infinnovation | 0:dcf432232b87 | 20 | |
infinnovation | 0:dcf432232b87 | 21 | int main() { |
infinnovation | 1:e01aa8a340ad | 22 | printf("connect-test\r\n"); |
infinnovation | 0:dcf432232b87 | 23 | |
infinnovation | 0:dcf432232b87 | 24 | int err = eth.connect(); |
infinnovation | 1:e01aa8a340ad | 25 | if (err) error("eth.connect: %d\r\n", err); |
infinnovation | 1:e01aa8a340ad | 26 | printf("IP address %s\r\n", eth.get_ip_address()); |
infinnovation | 0:dcf432232b87 | 27 | |
infinnovation | 1:e01aa8a340ad | 28 | for (int i = 0; i < sizeof(test_addrs)/sizeof(test_addrs[0]); i++) { |
infinnovation | 1:e01aa8a340ad | 29 | const TestAddr *addr = &test_addrs[i]; |
infinnovation | 1:e01aa8a340ad | 30 | TCPSocket sock; |
infinnovation | 1:e01aa8a340ad | 31 | err = sock.open(ð); |
infinnovation | 1:e01aa8a340ad | 32 | if (err) error("sock.open: %d\r\n", err); |
infinnovation | 1:e01aa8a340ad | 33 | printf("Connecting to %s:%u\r\n", addr->host, addr->port); |
infinnovation | 1:e01aa8a340ad | 34 | err = sock.connect(addr->host, addr->port); |
infinnovation | 1:e01aa8a340ad | 35 | printf("err = %d\r\n", err); |
infinnovation | 1:e01aa8a340ad | 36 | sock.close(); |
infinnovation | 1:e01aa8a340ad | 37 | } |
infinnovation | 1:e01aa8a340ad | 38 | printf("All done\r\n"); |
infinnovation | 0:dcf432232b87 | 39 | return 0; |
infinnovation | 0:dcf432232b87 | 40 | } |