chiark / gitweb /
Broadcast
authorRichard Kettlewell <rjk@greenend.org.uk>
Thu, 16 Dec 2010 23:01:42 +0000 (23:01 +0000)
committerRichard Kettlewell <rjk@greenend.org.uk>
Thu, 16 Dec 2010 23:01:42 +0000 (23:01 +0000)
udplisten.cc
udpsend.cc

index 42a6b45..b8ea5de 100644 (file)
@@ -26,6 +26,8 @@ int bindto(const char *dev) {
   const int one = 1;
   if(setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof one) < 0)
     fatal("setsockopt SO_REUSEADDR");
+  if(setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &one, sizeof one) < 0)
+    fatal("setsockopt SO_BROADCAST");
   if(dev && *dev) {
     if(setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)) < 0)
       fatal("setsockopt SO_BINDTODEVICE %s", dev);
index ae1e1d6..5e6f62c 100644 (file)
@@ -33,9 +33,11 @@ int main(int argc, char **argv) {
   int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
   if(fd < 0)
     fatal("socket");
-  if(connect(fd, res->ai_addr, res->ai_addrlen) < 0)
-    fatal("connect");
-  if(write(fd, argv[3], strlen(argv[3]) + 1) < 0)
-    fatal("write");
+  const int one = 1;
+  if(setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &one, sizeof one) < 0)
+    fatal("setsockopt SO_BROADCAST");
+  if(sendto(fd, argv[3], strlen(argv[3]) + 1, 0,
+            res->ai_addr, res->ai_addrlen) < 0)
+    fatal("sendto");
   return 0;
 }