Соединение отклонено ошибка Python - PullRequest
0 голосов
/ 26 апреля 2018

Я использую python на Mac, и по какой-то причине соединение отклоняется, когда я пытаюсь запустить сервер. Вот код для клиента и сервера. Я пытаюсь сделать так, чтобы пользователь мог войти в систему входа через клиентскую часть. Я также хотел бы иметь возможность сделать так, чтобы при входе пользователя в учетную запись его пароль автоматически сохранялся в текстовом документе. Кто-нибудь знает, как я могу это сделать? Спасибо за прочтение.

Код клиента:

import socket

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



print("Waiting for connection")



s.connect(('127.0.0.1', 4000))  

data = s.recv(1024).decode()#max number of bytes recv

print ("data from server", data)

message = str(input("Send: ->"))

s.send(message.encode())

s.close()

input("\n\n press enter to close")



users = {}

status = ""



def displayMenu():

    status = input("Are you registered user? Please write yes or no. Press q to quit")

    if status == "yes":

        oldUser()

    elif status == "no":

        newUser()



def newUser():

    createLogin = input("Create login name: ")



    if createLogin in users:

        print("\nLogin name already exist!\n")

    else:

        createPassw = input("Create password: ")

        users[createLogin] = createPassw

        print("\nUser created\n")



def oldUser():

    login = input("Enter login name: ")

    passw = input("Enter password: ")



    if login in users and users[login] == passw:

        print("\nLogin successful! Your credentials have been saved.\n")

    else:

        print("\nUser doesn't exist or wrong password!\n")



while status != "q":

    displayMenu()

код сервера:

import socket

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

print("Listening: ")

s.bind(('127.0.0.1', 4000))
s.listen(10) #listen to 1 connection at a time
c, addr = s.accept()  
print ("Connection from: ", addr)
message = input("Send: ->")
c.sendall(message.encode())
data = c.recv(1024).decode()#max number of bytes recv
print("data from client ", data)

c.close()
input("\n\n press enter to close") 

1 Ответ

0 голосов
/ 26 апреля 2018

Откройте две программы в отдельной оболочке.
Первый запуск серверной программы.
Затем запустите клиентскую программу, пока серверная программа еще работает.

Это решит ошибку соединения отказано.
Дайте мне знать, если это сработало:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...