Python "OSError: [WinError 10057] Запрос на отправку или получение данных был отклонен ..." при использовании socket.sendto (байты, адрес) - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь изучить TCP-соединение в python, поэтому я попытался создать окно чата.

В этой крошечной программе клиентский сервер должен отправить «Hello World» на сервер, и сервер вернется с «Здравствуйте, крошечный ".

Первая часть программы работает (когда клиент отправляет данные на сервер), но когда сервер отправляет некоторые данные обратно, программа вылетает.

Я пробовал: serverSoc.sendall (bytes ("hello tiny one", "utf")), но он выдал ошибку

код клиента:

#creates a client socket
clientSoc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#connects to a server
clientSoc.connect(("127.0.0.1",80))
print("Connection enabled\n You are the client")


clientSoc.send(bytes("Hello World!","utf-8"))
data = clientSoc.recv(1024)
print(data.decode())

в то время как серверкод:

serverSoc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#becomes a server 
serverSoc.bind(("127.0.0.1",80))

print("You are now The Server.")


serverSoc.listen(1)

while (True):
    #get s the content of the connection(conn) and the address(addr) 
    conn, addr = serverSoc.accept()

    #shows the address
    print("Connected to "+ str(addr))

    data = conn.recv(1024)
    print("%s: %s"%(str(addr),data.decode()))

    #send back some data
    serverSoc.sendto(bytes("Hello tiny one.","utf-8"),addr)
    conn.close()
serverSoc.close()

То, что я выполнил, было выполнено, чтобы клиент обслуживал связь (что успешно), а затем сервер к клиенту, где он выдает эту ошибку:

OSError: [WinError 10057]Запрос на отправку или получение данных был отклонен, поскольку сокет не подключен и (при отправке на сокет дейтаграммы с использованием вызова sendto) адрес не был указан

...