почему клиентская сторона не получает / не печатает сообщение? - PullRequest
0 голосов
/ 27 сентября 2019

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

на стороне сервера:

import socket
import select
soc = socket.socket()
soc.bind(('', 5555))
soc.listen(5)
while True:
    newsoc, addr = soc.accept()
    back = newsoc.recv(1024)
    print(back.decode())
    msg = input("server put")
    newsoc.send(msg.encode('UTF-8'))

на стороне клиента:

import socket
import select

while True:
    soc = socket.socket()
    soc.connect(('127.0.0.1', 5555))
    soc.setblocking(False)
    ready = select.select([soc], [], [], 1)
    if ready[0]:
        back = soc.recv(1024)
        print(back.decode())
    msg = input("put")
    soc.send(msg.encode('UTF-8'))
    ready2 = select.select([soc], [], [], 1)
    if ready2[0]:
        back2 = soc.recv(1024)
        print(back2.decode())
    soc.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...