udp_socket_windows.go 475 B

1234567891011121314151617
  1. //go:build windows
  2. package service
  3. import "syscall"
  4. // enableBroadcastSocketOption is required by Winsock before a UDP socket can
  5. // send to a directed broadcast address.
  6. func enableBroadcastSocketOption(_, _ string, rawConn syscall.RawConn) error {
  7. var socketErr error
  8. if err := rawConn.Control(func(fd uintptr) {
  9. socketErr = syscall.SetsockoptInt(syscall.Handle(fd), syscall.SOL_SOCKET, syscall.SO_BROADCAST, 1)
  10. }); err != nil {
  11. return err
  12. }
  13. return socketErr
  14. }