Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import threading
- # Function to receive messages from the server (same as before)
- def receive_messages(client_socket):
- while True:
- try:
- message = client_socket.recv(1024).decode('utf-8')
- print(message)
- except:
- print("Connection lost!")
- client_socket.close()
- break
- # Function to send messages to the server (same as before)
- def send_message(client_socket):
- while True:
- message = input("")
- client_socket.send(message.encode('utf-8'))
- # Function to search for the server's IP using UDP broadcast
- def discover_server_ip():
- udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
- udp_socket.bind(("", 37020)) # Listen on port 37020 for broadcasts
- print("Listening for the server broadcast...")
- while True:
- message, addr = udp_socket.recvfrom(1024)
- message = message.decode('utf-8')
- if message.startswith("ServerIP:"):
- return message.split(":")[1]
- # Client setup (find the server automatically)
- def start_client():
- server_ip = discover_server_ip() # Automatically get server's IP
- print(f"Discovered server at {server_ip}")
- client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- client_socket.connect((server_ip, 5555)) # Connect to the discovered server IP
- threading.Thread(target=receive_messages, args=(client_socket,)).start()
- threading.Thread(target=send_message, args=(client_socket,)).start()
- start_client()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement