Colin Hogben / Mbed OS connect-test

Fork of net-test by Colin Hogben

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?

UserRevisionLine numberNew 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(&eth);
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 }