Advertisement
Guest User

Untitled

a guest
Jul 1st, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import socket
  3. import struct
  4. import sys
  5. from threading import Thread
  6.  
  7. MADDX = '225.100.100.100'
  8. PORT = 6543
  9. is_listening = False
  10.  
  11. def listen_messages(is_listening):
  12. print('Start listening...')
  13. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
  14. sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  15. sock.bind(('', PORT))
  16. mreq = struct.pack('4sl', socket.inet_aton(MADDX), socket.INADDR_ANY)
  17. sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
  18. sock.settimeout(1)
  19. while is_listening():
  20. try:
  21. print(sock.recv(10240))
  22. except socket.timeout:
  23. pass
  24. print('Stop listening...')
  25.  
  26. sys.stdout.write('Enter your name: ')
  27. name = sys.stdin.readline().strip()
  28.  
  29. listening_thread = Thread(target = listen_messages, args = (lambda: is_listening,))
  30. is_listening = True
  31. listening_thread.start()
  32.  
  33. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
  34. sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
  35. while True:
  36. try:
  37. line = sys.stdin.readline().strip()
  38. sock.sendto('%s: %s' % (name, line), (MADDX, PORT))
  39. except KeyboardInterrupt:
  40. is_listening = False
  41. listening_thread.join()
  42. break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement