def query_word(connfd, word, name): # 实例化数据库操作对象 database = Database() # 调用Database中的方法 meaning = database.query_word(word) connfd.send(meaning.encode()) # 保存用户查询的历史记录 save_hist(connfd, word, name)
def register(connfd, name, passwd): # 实例化数据库操作对象 database = Database() # 调用Database中的方法 sig = database.register(name, passwd) if not sig: connfd.send(b"NO") return connfd.send(b"OK")
def login(connfd, name, passwd): # 查询数据库观察用户是否已经注册合法 # 实例化数据库操作对象 database = Database() # 调用Database中的方法 sig = database.login(name, passwd) print(name, passwd) if not sig: connfd.send(b"NO") return connfd.send(b"OK")
def get_hist(connfd, name): # 实例化数据库操作对象 database = Database() # 调用Database中的方法 # 循环发送查询到的历史信息 result = database.get_hist(name) for ele in result: msg = '%s %s %s' % ele connfd.send(msg.encode()) # 延时防止tcp粘包 sleep(0.1) # 发送结束标志 connfd.send(b"finsh")
服务端 逻辑处理 """ from socket import * from multiprocessing import Process import signal, sys from dict_db import Database # 定义地址为全局变量 HOST = '0.0.0.0' PORT = 8000 ADDR = (HOST, PORT) # 实例化一个对象帮助处理数据库交互的工作 (链接数据库) db = Database() # 注册处理函数 def do_register(connfd, name, passwd): # 调用数据处理方法判定可否注册 if db.register(name, passwd): connfd.send(b'OK') else: connfd.send(b'FAIL') # 处理登录请求 def do_login(connfd, name, passwd): if db.login(name, passwd): connfd.send(b'OK')
""" dict 服务端 功能 : 业务逻辑 模型 : 多进程tcp并发 """ from socket import * from multiprocessing import Process import sys, signal, time from dict_db import Database # 全局变量 HOST = '0.0.0.0' PORT = 8000 ADDR = (HOST, PORT) # 数据库链接对象 db = Database(user='******', passwd='123456', database='dict') # 处理注册 def do_register(connfd, name, passwd): if db.register(name, passwd): connfd.send(b'OK') else: connfd.send(b'FAIL') # 处理登录 def do_login(connfd, name, passwd): if db.login(name, passwd): connfd.send(b'OK') else:
""" import sys import time import signal from socket import * from dict_db import Database from multiprocessing import Process # 全局变量 HOST = "0.0.0.0" PORT = 7777 ADDR = (HOST, PORT) DATABASE = "dict" # 创建数据库连接 db = Database(DATABASE) # 处理注册请求 def do_register(connfd, name, passwd): if db.register(name, passwd): connfd.send(b"OK") else: connfd.send(b"FAIL") # 处理登录请求 def do_login(connfd, name, passwd): if db.login(name, passwd): connfd.send(b"OK") else:
""" 服务端 功能: 处理用户请求,处理数据 """ from socket import * from multiprocessing import Process import signal, sys from dict_db import Database from time import sleep # 全局变量 HOST = '0.0.0.0' PORT = 8000 ADDR = (HOST, PORT) db = Database(database='dict') # 注册处理 def do_register(c, data): tmp = data.split(' ') name = tmp[1] passwd = tmp[2] if db.register(name, passwd): c.send(b'OK') else: c.send(b'Fail') def do_login(c, data):
def save_hist(connfd, word, name): # 实例化数据库操作对象 database = Database() # 调用Database中的方法 database.save_hist(word, name)