Skip to content
Snippets Groups Projects
Commit 83a3343e authored by Michelle Fahrner's avatar Michelle Fahrner
Browse files

Upload New File

parent f260e147
No related branches found
No related tags found
1 merge request!1Feat/finalfinal
import socket
import threading
import time
import uuid
broadcast_ip = '255.255.255.255'#change ip??? #hard coded?
broadcast_port = 55555
broadcast_port2 = 33333
#local host information
MY_HOST = socket.gethostname()
#socket.gethostbyname(socket.gethostname()) #getip
MY_IP = socket.gethostbyname(MY_HOST)
#print(f"host:{MY_HOST} and ip: {MY_IP}")
# create client-socket for broadcast
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
#client_socket.bind(('', broadcast_port)) # listen on broadcast #socket is bind to ALL available IP addresses
listener_ready = threading.Event()
#listen for server?
def listen_server():
client_socket2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket2.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
client_socket2.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
client_socket2.bind(('', broadcast_port2)) # listen on broadcast #socket is bind to ALL available IP addresses
"""receives messages from server."""
#listener_ready.set() #makes sure that listener is ready
while True:
try:
data, address = client_socket2.recvfrom(4096)
decoded_message = data.decode()
#print(f"Received {data.decode()} from {address}") #debug
#ignores broadcast messages with own ip #################please enable it after testing!!!!!!!!!!!!!!!!!!!S
#does not work
if address[0]==MY_IP:
continue
#print("this decoded msg", decoded_message) #debug
except socket.error as e:
print(f"An error occurred: {e}")
break
def sender():
"""Ermöglicht dem Benutzer, Nachrichten zu schreiben und zu senden."""
nickname = input("Enter your nickname: ")
just_nickname= f"{nickname} entered the chat".encode()
#client_socket.sendto(just_nickname, (broadcast_ip, broadcast_port))
client_socket.sendto(just_nickname, (broadcast_ip, broadcast_port))
#print("is it leader adresse here", leader_address)
while True:
message_id = str(uuid.uuid4())
#allows the client to send any message
message = input("")
#print("send message to", broadcast_port)
#checks for whitemarks
if message.strip():
full_message = f"{message_id}: {nickname}: {message}".encode()
client_socket.sendto(full_message, (broadcast_ip, broadcast_port))
#print("message sended to", broadcast_port)
###############main#################################
if __name__ == "__main__":
# Start listener thread
listen_thread = threading.Thread(target=listen_server)
listen_thread.daemon = True
listen_thread.start()
#listener_ready.wait()
sender_thread = threading.Thread(target=sender)
sender_thread.start()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment