用python设计一个信息系统,系统必须通过客户端录入账号口令远程登录; 2、 登录后客户端可通过键盘输入向服务器发送数据; 3、 服务器端设置嗅探关键字,如果客户端发送的数据包含该关键字,即将该数据显示出来。
时间: 2024-05-14 19:15:04 浏览: 97
以下是一个简单的实现:
服务器端代码:
```python
import socket
# 设置监听地址和端口号
HOST = '127.0.0.1'
PORT = 8888
# 设置嗅探关键字
KEYWORD = 'password'
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定监听地址和端口号
server_socket.bind((HOST, PORT))
# 开始监听
server_socket.listen(1)
# 等待客户端连接
print('Waiting for client connection...')
client_socket, client_address = server_socket.accept()
print('Client connected:', client_address)
# 接收客户端发送的账号口令
account = client_socket.recv(1024).decode()
password = client_socket.recv(1024).decode()
# 验证账号口令
if account == 'admin' and password == '123456':
print('Login successful!')
# 向客户端发送欢迎消息
client_socket.sendall('Welcome to the server!'.encode())
while True:
# 接收客户端发送的数据
data = client_socket.recv(1024).decode()
if not data:
break
# 判断数据是否包含关键字
if KEYWORD in data:
# 如果包含关键字,将数据显示出来
print('Received data:', data)
# 向客户端发送回复消息
client_socket.sendall(('Received data: ' + data).encode())
else:
print('Login failed!')
# 关闭套接字
client_socket.close()
server_socket.close()
```
客户端代码:
```python
import socket
# 设置服务器地址和端口号
HOST = '127.0.0.1'
PORT = 8888
# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((HOST, PORT))
# 输入账号口令
account = input('Please enter your account: ')
password = input('Please enter your password: ')
# 发送账号口令给服务器
client_socket.sendall(account.encode())
client_socket.sendall(password.encode())
# 接收服务器发送的欢迎消息
data = client_socket.recv(1024).decode()
print(data)
# 循环发送数据给服务器
while True:
message = input('Please enter your message: ')
# 发送数据给服务器
client_socket.sendall(message.encode())
# 接收服务器发送的回复消息
data = client_socket.recv(1024).decode()
print(data)
# 关闭套接字
client_socket.close()
```
注意事项:
1. 为了简化代码,上述示例中没有添加异常处理,实际应用中需要添加适当的异常处理代码。
2. 为了简化输入,上述示例中账号口令直接通过键盘输入,实际应用中需要使用安全的方式输入账号口令,如使用密码输入框等。
3. 上述示例中嗅探关键字为固定值,实际应用中需要根据具体需求设置相应的关键字。
阅读全文