Linux下 基于sqlite3数据库实现电子词典(TCP)
在Linux环境下,使用Python和SQLite3实现一个简单的TCP基础的电子词典服务器是可行的。以下是一个简单的示例代码:
import sqlite3
import socket
# 连接到SQLite数据库
conn = sqlite3.connect('dictionary.db')
cursor = conn.cursor()
# 创建词汇表(如果不存在)
cursor.execute('''
CREATE TABLE IF NOT EXISTS words (
word TEXT PRIMARY KEY NOT NULL,
definition TEXT
);
''')
conn.commit()
# 启动TCP服务器
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 10000))
s.listen(5)
print("电子词典服务器已启动,监听端口10000...")
while True:
# 接受客户端连接
client_sock, addr = s.accept()
print(f"连接自 {addr}")
while True:
# 接收客户端数据
data = client_sock.recv(1024).decode('utf-8')
if not data:
break
# 查询词汇
cursor.execute('SELECT definition FROM words WHERE word = ?', (data,))
result = cursor.fetchone()
# 发送查询结果给客户端
if result:
client_sock.sendall(result[0].encode('utf-8'))
else:
client_sock.sendall(b"Word not found.")
# 关闭客户端连接
client_sock.close()
# 关闭数据库连接
conn.close()
这段代码创建了一个简单的TCP服务器,监听10000端口,并接收客户端的词汇查询请求。如果词汇存在于数据库中,则将其定义发送回客户端。这个例子假设你已经有一个名为 dictionary.db
的SQLite数据库,其中有一个名为 words
的表,包含 word
和 definition
两个字段。
请注意,这个代码示例没有包含词汇添加或删除功能,它只提供了查询已存在词汇的基本功能。实际应用中可能需要添加更多逻辑来处理来自客户端的其他命令,例如添加新词汇和定义,删除词汇等。
评论已关闭