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] – external edit 127.0.0.1sdk: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);
     }     }
 } }