Python Socket 编程:实现用户认证与数据库查询

本示例使用 Python Socket 编程实现简单的用户认证功能。服务器端连接 MySQL 数据库,验证客户端输入的用户名和密码是否匹配数据库记录。

客户端代码:

import socket

HOST = 'localhost'
PORT = 8000

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    while True:
        data = input('请输入用户名和密码,用空格分隔:')
        s.sendall(data.encode())
        response = s.recv(1024).decode()
        print(response)

服务器端代码:

import socket
import mysql.connector

HOST = 'localhost'
PORT = 8000

db = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="test"
)

cursor = db.cursor()

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    print('服务器已启动...')
    while True:
        conn, addr = s.accept()
        with conn:
            print('客户端已连接:', addr)
            while True:
                data = conn.recv(1024).decode()
                if not data:
                    break
                username, password = data.split()
                sql = "SELECT * FROM users WHERE username = %s AND password = %s"
                val = (username, password)
                cursor.execute(sql, val)
                result = cursor.fetchone()
                if result:
                    conn.sendall('认证成功'.encode())
                else:
                    conn.sendall('认证失败'.encode())

说明:

  • 服务器端连接 MySQL 数据库,并执行查询语句验证用户名和密码。
  • 客户端输入用户名和密码,并发送到服务器端进行验证。
  • 服务器端返回验证结果给客户端。

数据库:

维护一个小型数据库可以采用 MySQL 数据库,仅包含两个字段:用户名,密码;保存已经认证的用户名和密码值对。

使用:

  1. 运行服务器端代码,启动监听端口。
  2. 运行客户端代码,输入用户名和密码。
  3. 服务器端验证用户名和密码,并返回结果给客户端。
Python Socket 编程:实现用户认证与数据库查询

原文地址: https://www.cveoy.top/t/topic/kfR4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录