Как непрерывно получать данные? - PullRequest
0 голосов
/ 03 января 2019

Я создал очень простой TCP-сервер в Python. Я подключаюсь, затем сервер ожидает отправки данных от клиента, затем клиент ожидает отправки данных обратно. Пока все ждут, они не могут отправлять данные. Таким образом, одна сторона не может отправить два сообщения обратно. Я хотел бы, чтобы обе стороны слушали и все еще могли посылать все время. Как бы я пошел по этому поводу? Код сервера:

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((ipAddr, port))
print('Server starting on ' + ipAddr + ':' + str(port))
socket.listen(10)
print('Waiting for connection...')
c, addr = socket.accept()
print('Connection recieved from ' + str(addr))
while True:
    try:

        buf = c.recv(1024)
        if buf == 'stop':
            break
        elif len(buf) > 0:
            print(buf)
            response = input('>')
            c.sendall(str.encode(str(response)))
    except:
        print('Error')
        break

socket.close()

Я бы хотел иметь возможность отправлять друг другу сообщения от сервера к клиенту, при этом все еще прислушиваясь к ответам от клиента

1 Ответ

0 голосов
/ 03 января 2019

в то время как True: # получение

client,add=server.accept()
data = client.recv(1024)
str = data.decode('ascii')
print("client is saying: ",str)

#sending

msg = input("server:")
a= msg.encode('ascii')
client.send(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...