Python: Сервер постоянно получает запрос - PullRequest
0 голосов
/ 06 мая 2020

Итак, я пытаюсь сделать сервер входа и регистрации. Клиент отправит сообщение, а сервер примет его и поместит в sql.

Моя проблема в том, что сервер базы данных постоянно пытается получить сообщение, даже если соединение разорвано. Вот мои коды

сервер базы данных.

    while True:
    whmsg = client_socket.recv(1024)

    if whmsg != "":
        print('Received from', addr, whmsg.decode())

        msg = whmsg.decode()
        msg = msg.split("-")
        try:
            function = msg[0]
            username = msg[1]
            password = msg[2]
            print(msg)

            if function == "register":
                msg_send = register_user_db(username, password)
                msg_send = msg_send.encode()
                print(msg_send)
                client_socket.sendall(msg_send)
                server_socket.shutdown()

            elif function == "login":
                msg_send = login_user_db(username, password)
                print(msg_send)
                msg_send = msg_send.encode()
                print(msg_send)
                client_socket.sendall(msg_send)
                server_socket.shutdown()

            else:
                print("Something went wrong")
                client_socket.sendall(whmsg)

        except:
            continue

    else:
        continue

Код клиента

HOST = '127.0.0.1'
PORT = 9999

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

client_socket.connect((HOST, PORT))

msg_send = "login" + "-" + username + "-" + str(password)
print(msg_send)

client_socket.sendall(msg_send.encode())

data = client_socket.recv(1024)

if data.decode() == "Yes":
    client_socket.close()
    return page_view("login_successful", name=username)

elif data.decode() == "No":
    client_socket.close()
    return page_view("login_failed", reason="Incorrect Username or Password!")

else:
    print("Something went wrong")

Вывод введите описание изображения здесь

...