Test example of UDP for http://mbed.org/forum/helloworld/topic/1279/, fixing some settings for LPC2368
Dependencies: NetServices mbed
UDPSocketExample.cpp@1:0013c61ce210, 2010-11-23 (annotated)
- Committer:
- simon
- Date:
- Tue Nov 23 14:16:32 2010 +0000
- Revision:
- 1:0013c61ce210
- Parent:
- 0:b8ef549d35bc
Test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:b8ef549d35bc | 1 | #include "mbed.h" |
simon | 0:b8ef549d35bc | 2 | #include "EthernetNetIf.h" |
simon | 0:b8ef549d35bc | 3 | #include "UDPSocket.h" |
simon | 0:b8ef549d35bc | 4 | EthernetNetIf eth; |
simon | 0:b8ef549d35bc | 5 | UDPSocket cfgSocket; |
simon | 0:b8ef549d35bc | 6 | |
simon | 0:b8ef549d35bc | 7 | void onUDPSocketEvent(UDPSocketEvent e) { |
simon | 0:b8ef549d35bc | 8 | if ( e == UDPSOCKET_READABLE ) { |
simon | 0:b8ef549d35bc | 9 | char buf[64] = {0}; |
simon | 0:b8ef549d35bc | 10 | Host host; |
simon | 0:b8ef549d35bc | 11 | while ( int len = cfgSocket.recvfrom( buf, 63, &host ) ) { |
simon | 0:b8ef549d35bc | 12 | if ( len <= 0 ) |
simon | 0:b8ef549d35bc | 13 | break; |
simon | 0:b8ef549d35bc | 14 | printf("From %d.%d.%d.%d: %s\n", host.getIp()[0], host.getIp()[1], host.getIp()[2], host.getIp()[3], buf); |
simon | 0:b8ef549d35bc | 15 | } |
simon | 0:b8ef549d35bc | 16 | } |
simon | 0:b8ef549d35bc | 17 | } |
simon | 0:b8ef549d35bc | 18 | |
simon | 0:b8ef549d35bc | 19 | int main() { |
simon | 0:b8ef549d35bc | 20 | // pc.baud(115200); |
simon | 0:b8ef549d35bc | 21 | printf ("HEllo World - 7 *\n"); |
simon | 0:b8ef549d35bc | 22 | |
simon | 0:b8ef549d35bc | 23 | EthernetErr ethErr = eth.setup(); |
simon | 0:b8ef549d35bc | 24 | if ( ethErr == ETH_OK ) { |
simon | 0:b8ef549d35bc | 25 | IpAddr ip = eth.getIp(); |
simon | 0:b8ef549d35bc | 26 | printf("mbed IP Address is %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]); |
simon | 0:b8ef549d35bc | 27 | } else printf ("ETHERNETSETUP FAILED\n"); |
simon | 0:b8ef549d35bc | 28 | |
simon | 0:b8ef549d35bc | 29 | printf("seting event\n"); |
simon | 0:b8ef549d35bc | 30 | cfgSocket.setOnEvent(&onUDPSocketEvent); |
simon | 0:b8ef549d35bc | 31 | printf("seting host\n"); |
simon | 1:0013c61ce210 | 32 | Host x(IpAddr(),5555); |
simon | 0:b8ef549d35bc | 33 | printf("seting bind\n"); |
simon | 0:b8ef549d35bc | 34 | |
simon | 0:b8ef549d35bc | 35 | UDPSocketErr udpErr = cfgSocket.bind( x ); |
simon | 0:b8ef549d35bc | 36 | if ( udpErr != UDPSOCKET_OK ) |
simon | 0:b8ef549d35bc | 37 | printf("error %d\n", udpErr); |
simon | 0:b8ef549d35bc | 38 | |
simon | 0:b8ef549d35bc | 39 | int i = 0; |
simon | 0:b8ef549d35bc | 40 | Host brdHost(IpAddr(255,255,255,255), 5555); //broadcast test msg |
simon | 0:b8ef549d35bc | 41 | char cfgRqstMsg[]="SERVER CONFIG REQUEST"; |
simon | 0:b8ef549d35bc | 42 | |
simon | 0:b8ef549d35bc | 43 | Timer tmr; |
simon | 0:b8ef549d35bc | 44 | tmr.start(); |
simon | 0:b8ef549d35bc | 45 | while (1) { |
simon | 0:b8ef549d35bc | 46 | Net::poll(); |
simon | 0:b8ef549d35bc | 47 | if ( tmr.read() > 5) { |
simon | 0:b8ef549d35bc | 48 | tmr.reset(); |
simon | 0:b8ef549d35bc | 49 | int nSent = cfgSocket.sendto(cfgRqstMsg,strlen(cfgRqstMsg),&brdHost); |
simon | 0:b8ef549d35bc | 50 | printf("PLONKER %d :: %d\n",++i,nSent); |
simon | 0:b8ef549d35bc | 51 | if ( nSent < 0 ) |
simon | 0:b8ef549d35bc | 52 | printf("error %d\n", (UDPSocketErr)nSent); |
simon | 0:b8ef549d35bc | 53 | } |
simon | 0:b8ef549d35bc | 54 | } |
simon | 0:b8ef549d35bc | 55 | } |