У меня есть два файла, один из которых устанавливает UDP-сервер, а другой - UDP-клиент, от которого сервер должен получать.
Когда я запускаю файл UDP-сервера, он делает то, что должен, и отображает «сервер готов к приему», пока сервер работает.
Однако всякий раз, когда я запускаю файл клиента и вводю текст для проверки реализации, я получаю следующую ошибку:
gaierror: [Errno 11001] Ошибка getaddrinfo
Важно отметить, что я использую Spyder (Anaconda Navigator) для Python 3.7. Мои вопросы:
- Возможно ли это сделать в Spyder?
- Если 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»