socket 通信python实现服务机端的增删好友功能
时间: 2023-07-30 10:04:17 浏览: 40
实现增删好友功能的关键是要维护一个好友列表,并且能够对好友列表进行增删操作。下面是一个简单的示例代码,实现了基于 socket 通信的服务端增删好友功能。
```python
import socket
# 创建 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定端口号
server_socket.bind(('localhost', 8888))
# 监听客户端连接
server_socket.listen(5)
# 定义好友列表
friends = ['Alice', 'Bob', 'Charlie']
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
# 接收客户端请求
request = client_socket.recv(1024).decode('utf-8')
# 解析请求
parts = request.split()
command = parts[0]
if command == 'list': # 列出好友列表
response = ' '.join(friends)
elif command == 'add': # 添加好友
friend = parts[1]
if friend not in friends:
friends.append(friend)
response = 'OK'
else:
response = 'Already exists'
elif command == 'remove': # 删除好友
friend = parts[1]
if friend in friends:
friends.remove(friend)
response = 'OK'
else:
response = 'Not found'
else: # 无效命令
response = 'Invalid command'
# 发送响应
client_socket.send(response.encode('utf-8'))
# 关闭连接
client_socket.close()
```
客户端可以通过发送以下命令来与服务端进行交互:
- `list`:列出好友列表。
- `add <name>`:添加名为 `<name>` 的好友。
- `remove <name>`:删除名为 `<name>` 的好友。
例如,要添加名为 `David` 的好友,客户端可以发送以下请求:
```
add David
```
服务端返回 `OK` 表示添加成功。
要列出当前所有好友,客户端可以发送以下请求:
```
list
```
服务端返回一个以空格分隔的字符串,包含所有好友的名字。
要删除名为 `Charlie` 的好友,客户端可以发送以下请求:
```
remove Charlie
```
服务端返回 `OK` 表示删除成功。如果要删除的好友不存在,服务端返回 `Not found`。