Skip to content

Instantly share code, notes, and snippets.

@1ycx
Last active November 30, 2020 19:29
Show Gist options
  • Save 1ycx/f65a11ace7975990965343d0a92f17b1 to your computer and use it in GitHub Desktop.
Save 1ycx/f65a11ace7975990965343d0a92f17b1 to your computer and use it in GitHub Desktop.
Python UDP Broadcast

Docs :

Run server and client in seperate terminals. Server first then client.

Server.py

import socket

host = ''
port = 51424
server_port = 51423

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))

data = "Secret key : s76fshg23"

try:
    message, address = s.recvfrom(8192)
    print("Got data, addr from client - ")
    print("Data : ", message.decode())
    print("Address : ", address)

    s.sendto(data.encode(), ('<broadcast>', server_port))
    
except (KeyboardInterrupt, SystemExit):
    exit()

Client.py

import socket

host = ''
port = 51424
server_port = 51423

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))

data = "Secret key : s76fshg23"

try:
    s.sendto(data.encode(), ('<broadcast>', server_port))

    message, address = s.recvfrom(8192)
    print("Got data, addr from server - ")
    print("Data : ", message.decode())
    print("Address : ", address)

except (KeyboardInterrupt, SystemExit):
    exit()

Notes :

Server :

import socket
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)

while True:
    data = '{0}\n'.format(time.strftime("%H:%M:%S", time.localtime()))
    sock.sendto(data.encode(), ('<broadcast>', 5566))
    time.sleep(5)

Client :

$ nc -k -w 1 -ul 5566
22:45:45
22:45:50
@shehryar51088
Copy link

this code do nothing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment