Skip to content

Instantly share code, notes, and snippets.

@thekoushik
Last active February 11, 2019 15:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thekoushik/3a4d41d9adafee9f1d99994718f5ae57 to your computer and use it in GitHub Desktop.
Save thekoushik/3a4d41d9adafee9f1d99994718f5ae57 to your computer and use it in GitHub Desktop.
Python LAN Walkie Talkie CLI Application (Python 2.7)
import sys
import os
import socket
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(2)
if "--listen" in sys.argv:
print "WalkieTalkie Listener Turned On.."
server_address = ('', 9434)
sock.bind(server_address)
while True:
try:
data, address = sock.recvfrom(4096)
data = str(data.decode('UTF-8'))
print(str(address[0])+': '+data)
except KeyboardInterrupt:
print "Aborted!"
break
except socket.timeout as e:
time.sleep(1)
continue
except socket.error as e:
print e
sys.exit(1)
else:
print "WalkieTalkie Broadcast Turned On.."
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
server_address = ('255.255.255.255', 9434)
while True:
s=raw_input("Enter message: ")
if s == "exit":
print "WalkieTalkie Broadcast Turning Off.."
sys.exit(1)
sock.sendto(s.encode(), server_address)
@thekoushik
Copy link
Author

For python 3.x:

import sys
import os
import socket
import time

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(2)
if "--listen" in sys.argv:
    print("WalkieTalkie Listener Turned On..")
    server_address = ('', 9434)
    sock.bind(server_address)
    while True:
        try:
            data, address = sock.recvfrom(4096)
            data = str(data.decode('UTF-8'))
            print(str(address[0])+': '+data)
        except KeyboardInterrupt:
            print("Aborted!")
            break
        except socket.timeout as e:
            time.sleep(1)
            continue
        except socket.error as e:
            print(e)
            sys.exit(1)
else:
    print("WalkieTalkie Broadcast Turned On..")
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    server_address = ('255.255.255.255', 9434)
    while True:
        s=input("Enter message: ")
        if s == "exit":
            print("WalkieTalkie Broadcast Turning Off..")
            sys.exit(1)
        sock.sendto(s.encode(), server_address)

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