Использование сокетов в python Я создал сервер-сервер-сервер сокетов, который просто отправляет сообщения от клиентов на сервер, и я хочу отправлять сообщения между клиентами.
Мой код выглядит так ... .
Server.py
import socket
import threading
import pyaudio
PORT = 5070
HEADER = 64
FORMAT= "utf-8 "
DISCONNECT_MSG="!DISCONNECTED"
SERVER=socket.gethostbyname(socket.gethostname())
ADDR = (SERVER,PORT)
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(ADDR)
connection_list = []
def handle_clinet(conn,addr):
print(f"[NEW CONNECTION]{addr} Connected")
CONNECTED = True
while CONNECTED:
msg_length = conn.recv(HEADER).decode(FORMAT)
if msg_length:
msg_length=int(msg_length)
msg = conn.recv(msg_length).decode(FORMAT)
if msg == DISCONNECT_MSG:
CONNECTED = False
if msg == "Disconnect":
conn.close()
CONNECTED = False
print("Dissconnected From the User...")
else:
print(msg)
def start():
server.listen()
while True:
conn,addr = server.accept()
thread = threading.Thread(target=handle_clinet,args=(conn,addr))
thread.start()
print(f"[ACTIVE CONNECTIONS] {threading.active_count() -1}")
connection_list.append(addr)
print(connection_list)
print("[Starting] the server...")
start()
Client.py
import socket
import threading
import pyaudio
PORT = 5070
HEADER = 64
FORMAT= "utf-8 "
DISCONNECT_MSG="!DISCONNECTED"
SERVER=socket.gethostbyname(socket.gethostname())
ADDR = (SERVER,PORT)
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(ADDR)
def send(msg):
message = msg.encode(FORMAT)
msg_length = len(message)
send_length = str(msg_length).encode(FORMAT)
send_length += b" " *(HEADER - len(send_length))
client.send(send_length)
client.send(message)
send("Hello World")
send_more =True
while send_more:
a = input()
send(a)
if a =="Disconnect":
print("!Disconnected From the Server.")
Как видно из вышеизложенного, пожалуйста, предложите какой-нибудь метод для отправки сообщений между клиентами. Какие изменения у меня есть сделать в следующем коде