Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sdk:scripts:udpserver [2015/05/05 15:04]
127.0.0.1 external edit
sdk:scripts:udpserver [2022/09/05 12:26] (current)
schmitt
Line 2: Line 2:
 <code c udpserver.are>​ <code c udpserver.are>​
 /* DESC: This script implements an UDP server which is able to receive messages. /* DESC: This script implements an UDP server which is able to receive messages.
- * Copyright (C) 2012 NetModule AG, Switzerland+ * Copyright (C) 2012-2016 NetModule AG, Switzerland
  */  */
  
Line 19: Line 19:
 sock = socket(AF_INET,​ SOCK_DGRAM, IPPROTO_UDP);​ sock = socket(AF_INET,​ SOCK_DGRAM, IPPROTO_UDP);​
 if (sock < 0) { if (sock < 0) {
-    ​printf("​Unable to open socket\n");+    ​nb_syslog("​Unable to open socket"​);​
     exit(1);     exit(1);
 } }
Line 27: Line 27:
 ret = bind(sock, PORT, addr); ret = bind(sock, PORT, addr);
 if(ret == -1) { if(ret == -1) {
-    ​printf("​Unable to bind to port%d\n", PORT);+    ​nb_syslog("​Unable to bind to port %d", PORT);
     close(sock);​     close(sock);​
     exit(1);     exit(1);
 } }
  
-printf("​Listening for messages on port %d\n", PORT);+nb_syslog("​Listening for messages on port %d", PORT);
  
 while (1) { while (1) {
-    msg = recvfrom(sock); +    msg = recvmsg(sock, 3); 
-    if (left(msg, 4) == "​quit"​) { +    if (is_void(msg)) continue; 
-        ​printf("​Received quit, terminating\n");+ 
 +    data = struct_get(msg,​ "​data"​);​ 
 +    from = struct_get(msg,​ "​from"​);​ 
 + 
 +    if (left(data, 4) == "​quit"​) { 
 +        ​nb_syslog("​Received quit, terminating"​);​
         break;         break;
-    } else if (msg != ""​) { +    } else if (data != ""​) { 
-        ​printf("​Received message '​%s'​\n", ​msg);+        ​nb_syslog("​Received message '​%s' ​from %s", ​data, from);
     }     }
 } }