Задать вопрос
@kibernetshow

Как отправить сообщение всем клиентам, подключённым к серверу?

У меня есть сервер и клиент. Мне нужно чтобы сервер принимал сообщение от клиента, и отправлял его всем подсоединенным клиентам. Есть набросок, но в нём сервер отправляет сообщение клиенту, от которого его и получил.
server.py

import socket, threading
class ClientThread(threading.Thread):
	def __init__(self,clientAddress, clientsocket):
		threading.Thread.__init__(self)
		self.csocket = clientsocket
		print ("New connection added: ", clientAddress)
	def run(self):
		print ("Connection from : ", clientAddress)
		msg = ''
		while True:
			data = self.csocket.recv(2048)
			msg = data.decode()
			if msg == 'bye':
				break
			print ("from client", msg)
			self.csocket.sendall(bytes(msg,'UTF-8'))
LOCALHOST = "localhost"
PORT = 8080
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((LOCALHOST, PORT))
print("Server started")
print("Waiting for client request..")
while True:
	server.listen(3)
	clientsock, clientAddress = server.accept()
	newthread = ClientThread(clientAddress, clientsock)
	newthread.start()



client.py

import socket
SERVER = "localhost"
PORT = 8080
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((SERVER, PORT))
client.sendall(bytes("This is from Client", 'UTF-8'))
while True:
	in_data = client.recv(1024)
	print("From Server :", in_data.decode())
	out_data = input()
	client.sendall(bytes(out_data, 'UTF-8'))
	if out_data == 'bye':
		break

  • Вопрос задан
  • 318 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы