Я проверяю, взаимодействуют ли TCP-клиент и сервер, но после запуска клиентская часть ничего не делает. - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть задание, в котором я должен написать программы на Python для клиентского сервера TCP для реализации базового приложения для голосования. Есть только два кандидата: JohnD и JaneD. Я проверял связь между клиентом и сервером. Поэтому, когда я запускаю клиентскую часть, ничего не происходит. Может ли кто-нибудь сказать мне, почему.

Сначала я использовал localhost для serverName, но продолжал получать эту ошибку: clientSocket.connect (("localhost", serverPort)) ConnectionRefusedError: [WinError 10061] Невозможно установить соединение, поскольку целевой компьютерактивно отказался

Поэтому я установил имя_сервера своим локальным IP. Клиент работает, но ничего не происходит.

#TCP CLIENT#

from socket import*

#serverName = "localhost"

serverName = "131.100.39.41"

serverPort = 9001

clientSocket = socket(AF_INET, SOCK_STREAM)

clientSocket.connect(("131.100.39.41", serverPort))

option = input("Enter the voter name: ")

clientSocket.send(bytes(option, "utf-8"))

print("Name sent to server.", option)

clientSocket.close()

Это сторона сервера.

#TCP SERVER#

from socket import*

serverPort = 9001

serverSocket = socket(AF_INET, SOCK_STREAM)

serverSocket.bind(("", serverPort))

serverSocket.listen(1)

print("Server is up and running.")

while(1):

    connectionSocket, addr = serverSocket.accept()

    option = connectionSocket.recv(1024)

    print("received from client", option)


serverSocket.close()

1 Ответ

0 голосов
/ 07 ноября 2019

Этот код выглядит хорошо. Это работает.

Вы получаете ошибку connectionRefused в клиенте, потому что PORT не открыт, или для порта открыто 2 канала. Порт открыт для прослушивания только при запуске сервера.

проверьте с помощью 'netstat -anp |findstr ": 9001" Если порт уже открыт, выберите другой порт или уничтожьте порт.

Помните:

  1. Измените сокет обратно на localhost или 127.0.0.1
  2. Сначала запустите сервер, а затем запустите клиент.

ниже выводится сообщение, которое я получил, когда я запустил ваш код

Сервер

    Server is up and running.
    received from client b'test'

клиент:

Enter the voter name: test
Name sent to server. test
...