SimpleSocket 1.0 examples
Dependencies: EthernetNetIf SimpleSocket 1.0 mbed
multicast.cpp@34:a108bcc26b69, 2011-11-04 (annotated)
- Committer:
- yamaguch
- Date:
- Fri Nov 04 06:04:36 2011 +0000
- Revision:
- 34:a108bcc26b69
- Parent:
- 33:39d9cdf99de8
removed Serial mon,;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch |
32:00114e36de90 | 1 | #include "EthernetNetIf.h" |
yamaguch |
32:00114e36de90 | 2 | #include "SimpleSocket.h" |
yamaguch |
32:00114e36de90 | 3 | |
yamaguch |
32:00114e36de90 | 4 | void multicast() { |
yamaguch |
33:39d9cdf99de8 | 5 | EthernetNetIf eth; |
yamaguch |
33:39d9cdf99de8 | 6 | eth.setup(); |
yamaguch |
34:a108bcc26b69 | 7 | |
yamaguch |
32:00114e36de90 | 8 | Host multicast(IpAddr(239, 192, 1, 100), 50000); |
yamaguch |
32:00114e36de90 | 9 | DatagramSocket datagram(multicast); |
yamaguch |
32:00114e36de90 | 10 | |
yamaguch |
32:00114e36de90 | 11 | while (true) { |
yamaguch |
32:00114e36de90 | 12 | Host host; |
yamaguch |
32:00114e36de90 | 13 | if (datagram.receive(&host, 1 + (rand() % 5) / 3.0) > 0) { |
yamaguch |
32:00114e36de90 | 14 | int value; |
yamaguch |
32:00114e36de90 | 15 | datagram.scanf("%d", &value); |
yamaguch |
32:00114e36de90 | 16 | IpAddr ip = host.getIp(); |
yamaguch |
32:00114e36de90 | 17 | printf("received from %d.%d.%d.%d:%d %d\n", ip[0], ip[1], ip[2], ip[3], host.getPort(), value); |
yamaguch |
32:00114e36de90 | 18 | } else { |
yamaguch |
32:00114e36de90 | 19 | char* message = "12345!"; |
yamaguch |
32:00114e36de90 | 20 | datagram.printf(message); |
yamaguch |
32:00114e36de90 | 21 | datagram.send(multicast); |
yamaguch |
32:00114e36de90 | 22 | printf("sent: %s\n", message); |
yamaguch |
32:00114e36de90 | 23 | wait(1); |
yamaguch |
32:00114e36de90 | 24 | } |
yamaguch |
32:00114e36de90 | 25 | } |
yamaguch |
32:00114e36de90 | 26 | } |