ubuntu 自定义协议,然后用python网络编程
时间: 2024-05-07 19:16:15 浏览: 28
Ubuntu 自定义协议
在 Ubuntu 中,可以使用 Python 编写自定义协议,例如基于 TCP 或 UDP 协议的客户端-服务器应用程序。
以下是一个简单的例子,演示了如何使用 Python 编写一个基于 TCP 协议的服务器和客户端应用程序,该应用程序使用自定义协议进行通信。
服务器端:
```python
import socket
# 定义服务器地址和端口
HOST = 'localhost'
PORT = 12345
# 创建 socket 对象
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(f'Connected by {client_address}')
# 接收客户端发送的数据
while True:
data = client_socket.recv(1024)
if not data:
break
# 解析客户端发送的数据
request = data.decode().strip().split(',')
command = request[0]
# 根据客户端请求执行相应操作
if command == 'ADD':
result = int(request[1]) + int(request[2])
elif command == 'SUB':
result = int(request[1]) - int(request[2])
else:
result = 'Invalid command'
# 发送响应数据给客户端
response = str(result).encode()
client_socket.sendall(response)
# 关闭连接
client_socket.close()
server_socket.close()
```
客户端:
```python
import socket
# 定义服务器地址和端口
HOST = 'localhost'
PORT = 12345
# 创建 socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((HOST, PORT))
# 发送数据到服务器
while True:
command = input('Enter command (ADD/SUB x y): ')
if not command:
break
client_socket.sendall(command.encode())
# 接收服务器响应数据
data = client_socket.recv(1024)
print(f'Result: {data.decode()}')
# 关闭连接
client_socket.close()
```
在以上示例中,自定义协议使用逗号分隔客户端请求的命令和参数。服务器解析请求并执行相应的操作,然后将响应发送回客户端。客户端发送命令到服务器,并等待服务器的响应。