Хорошо, я потратил около трех часов на программирование сокетов в Python, пытаясь создать простую программу чата.Я получил клиент для отправки текста на сервер, а затем, с этого момента, клиент повторяет сообщение для себя.Однако я хочу, чтобы сообщение было отправлено на сервер, а затем сервер, а не клиент, повторно отправил его всем подключенным клиентам.У меня проблемы с этим.Это мой код:
Код на стороне сервера:
import SocketServer
def handle(self):
data = self.request[0].strip()
socket = self.request[1]
print "%s wrote:" % self.client_address[0]
print data
socket.sendto(data.upper(), self.client_address)
if __name__ == "__main__":
HOST, PORT = "localhost", 25555
server = SocketServer.UDPServer((HOST, PORT), MyUDPHandler)
server.serve_forever()
Код на стороне клиента:
import socket
import sys
global HOST
global PORT
HOST, PORT = "localhost", 25555
while 1 > 0:
data = raw_input(">".join(sys.argv[1:]))
# SOCK_DGRAM is the socket type to use for UDP sockets
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# As you can see, there is no connect() call; UDP has no connections.
# Instead, data is directly sent to the recipient via sendto().
sock.sendto(data + "\n", (HOST, PORT))
received = sock.recv(1024)
print "Sent: %s" % data
print "Received: %s" % received