使用图形用户界面。有服务器和客户端,服务器监听客户端的登陆。即:如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。绿灯表示连接,红灯表示断线。 提示:socket的监听方法
时间: 2024-02-05 20:13:35 浏览: 20
要实现这个功能,你需要使用 Python 中的 socket 模块。具体步骤如下:
1. 编写服务器端代码:
```python
import socket
# 创建 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 绑定端口号
server_socket.bind((host, port))
# 设置最大连接数,超过后排队
server_socket.listen(5)
# 客户端连接状态列表
client_status = {}
while True:
# 建立客户端连接
client_socket, client_address = server_socket.accept()
# 客户端登录
client_name = client_socket.recv(1024).decode()
client_status[client_name] = True
# 更新客户端状态
print('客户端 %s 已连接' % client_name)
client_socket.send('已连接'.encode())
# 关闭连接
client_socket.close()
```
2. 编写客户端代码:
```python
import socket
# 创建 socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 连接服务器
client_socket.connect((host, port))
# 登录客户端
client_name = input('请输入客户端名称: ')
client_socket.send(client_name.encode())
# 接收服务器返回的消息
msg = client_socket.recv(1024).decode()
print(msg)
# 关闭连接
client_socket.close()
```
在客户端登录后,服务器会更新客户端状态,并打印客户端已连接的消息。你可以根据客户端状态来控制红绿灯的变化。监听客户端连接状态可以使用 select 模块,也可以使用多线程或异步编程实现。