#!/usr/bin/env python from socket import * HOST = "127.0.0.1" PORT = 21567 BUFSIZE = 1024 ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) tcpCliSock.connect(ADDR) while True: msg = input("> ") if not msg: break tcpCliSock.send(bytes(msg, "utf-8")) tcpCliSock.close()
Есть сервер:
#!/usr/bin/env python from socket import * HOST = "" PORT = 21567 BUFSIZE = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) while True: print("waiting for connection...") tcpCliSock, addr = tcpSerSock.accept() print("Connected from: ", addr) while True: data = tcpCliSock.recv(BUFSIZE) if not data: break print(data.decode()) tcpCliSock.close() tcpSerSock.close()
Подскажите как реализовать дуплексную переписку между клиентом и сервером. Т.к. если я добавляю input() в цикл сервера, то пока я не отправлю сообщениесо стороны сервера, сообщение от клиента не отображается, что впринципе логично, так работает цикл. Получается, надо два бесконечных цикла на прием и передачу, чтобы они работали одновременно. Тогда как это реализовать? или есть какие-то доп. функции специально для этого?