TCP клиент - код сервера.Ничего не делает - PullRequest
0 голосов
/ 25 сентября 2018

Пытался вставить код из одной книги (обучение TCP / IP), чтобы отправить сообщение с клиента на сервер.Но ничего не происходит, кроме сообщения «Сервер готов к приему».

Код сервера:

from socket import *

serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('', serverPort))
serverSocket.listen(1)

print('The server is ready to receive')

while 1:
    connectionSocket, addr = serverSocket.accept()
    sentence = connectionSocket.recv(1024)
    capitalizedSentence = sentence.upper()
    connectionSocket.send(capitalizedSentence)
    connectionSocket.close()

Код клиента:

from socket import *

serverName = '0.0.0.0.0'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)

clientSocket.connect((serverName, serverPort))
sentence = input('Input lowercase sentence: ')
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)

print('From Server: ', modifiedSentence)
clientSocket.close()

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Значение имя_сервера не является допустимым IP-адресом («0.0.0.0.0»).Вместо этого попробуйте 0.0.0.0.

Если вы хотите заранее проверить действительный IP-адрес, попробуйте это.

if re.match(r'[0-9]+(?:\.[0-9]+){3}', input_string):
    serverName = input_string  # True, valid
else:
    print('Invalid IP Address')
0 голосов
/ 25 сентября 2018

Вы ввели неверное имя сервера.Имя сервера фактически является IP-адресом, а 0.0.0.0.0 не является действительным IP-адресом.Попробуйте изменить

serverName = '0.0.0.0.0' -> '0.0.0.0' or '127.0.0.1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...