SSDP Server - working version provides SSDP based network discovery, and with a companion web server, may provide other functionalities.

Dependents:   X10Svr SSDP_Server

Revision:
5:199656d96c72
Parent:
3:85fa421bbcc2
Child:
6:9df748509c3d
--- a/SSDP.cpp	Fri Aug 31 22:50:27 2018 +0000
+++ b/SSDP.cpp	Sat Nov 17 01:30:19 2018 +0000
@@ -63,7 +63,7 @@
 // Addr:    "###.###.###.###"                   [15]
 // Port:    12345                               [5]
 //
-#define SSDP_NOTIFY_OVERHEAD 20   // Number of bytes to fill in the information
+#define SSDP_NOTIFY_OVERHEAD 25   // Number of bytes to fill in the information (+5)
 
 
 // The SSDP listener thread
@@ -171,11 +171,18 @@
     if (out_buffer) {
         UDPSocket sock;
         Endpoint broadcast;
-        sock.init();
-        sock.set_broadcasting();
-        broadcast.set_address(MCAST_GRP, MCAST_PORT);
+        int i;
+        
+        i = sock.init();
+        printf(" %d = sock.init()\n", i);
+        i = sock.set_broadcasting();
+        printf(" %d = sock.set_broadcasting()\n", i);
+        i = broadcast.set_address(MCAST_GRP, MCAST_PORT);
+        printf(" %d = sock.set_address(%s,%d)\n", i, MCAST_GRP, MCAST_PORT);
         sprintf(out_buffer, SSDP_NOTIFY, _config.ipAddr, _config.port);
-        sock.sendTo(broadcast, out_buffer, strlen(out_buffer));
+        printf("SendNotify:\n%s\n", out_buffer);
+        i = sock.sendTo(broadcast, out_buffer, strlen(out_buffer));
+        printf(" %d = sendTo(%s, ..., %d)\n", i, broadcast.get_address(), strlen(out_buffer));
         free(out_buffer);
     }
 }