Как настроить соединение UDP-клиент-сервер в Spyder? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть два файла, один из которых устанавливает UDP-сервер, а другой - UDP-клиент, от которого сервер должен получать.

Когда я запускаю файл UDP-сервера, он делает то, что должен, и отображает «сервер готов к приему», пока сервер работает.

Однако всякий раз, когда я запускаю файл клиента и вводю текст для проверки реализации, я получаю следующую ошибку: gaierror: [Errno 11001] Ошибка getaddrinfo

Важно отметить, что я использую Spyder (Anaconda Navigator) для Python 3.7. Мои вопросы:

  1. Возможно ли это сделать в Spyder?
  2. Если 1. верно, что я делаю не так?

Я попытался запустить файл UDP-сервера в командной строке Windows, а затем попытался запустить файл UDP-клиента, чтобы увидеть, повлиял ли на результат тот факт, что я запускал сервер из Spyder, однако я все еще получил та же ошибка, говорящая «ошибка gaierror: [Errno 11001] getaddrinfo»

Я пытался поместить "socket.getaddrinfo ('hostname', 12000)" в файл клиента непосредственно под двумя определениями serverName и serverPort, но это тоже не сработало

Код для клиента - первый блок кода, код для сервера - второй

import socket

serverName='hostname'
serverPort=12000
clientSocket=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
message= input('Input lowercase sentence:')
clientSocket.sendto(message.encode(),(serverName, serverPort))
modifiedMessage, serverAddress=socket.clientSocket.recvfrom(2048)
print(modifiedMessage)
clientSocket.close()
import socket

serverPort=12000
serverSocket=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSocket.bind(("",serverPort))
print ("The server is ready to receive")
while 1:
    message, clientAddress = serverSocket.recvfrom(2048)
    modifiedMessage = message.upper()
    serverSocket.sendto(modifiedMessage, clientAddress)

Ожидаемые результаты: Сервер принимает строчное предложение от Клиента, такое как «Привет, мое имя, Джефф», а затем делает это предложение «Привет, мое имя, Джефф»

Фактически: после ввода предложения я получаю следующее сообщение об ошибке: «gaierror: [Errno 11001] getaddrinfo fail»

...