Python编写TCP程序,由客户端发送正整数n,服务端计算n!并返回。
时间: 2024-05-04 21:17:00 浏览: 125
以下是一个简单的Python TCP客户端和服务端程序,实现了客户端发送正整数n,服务端计算n!并返回。
服务端代码:
```python
import socket
import math
HOST = '127.0.0.1' # 服务端IP地址
PORT = 8888 # 服务端端口号
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建一个socket对象
server_socket.bind((HOST, PORT)) # 绑定IP地址和端口号
server_socket.listen(1) # 监听客户端连接请求
print('服务端已启动,等待客户端连接...')
while True:
conn, addr = server_socket.accept() # 接受客户端连接请求,返回连接对象和客户端地址
print('客户端已连接,地址为:', addr)
data = conn.recv(1024) # 接收客户端发送的数据
n = int(data.decode()) # 将接收到的数据转换为整数
result = str(math.factorial(n)) # 计算n!并将结果转换为字符串
conn.sendall(result.encode()) # 将结果发送给客户端
conn.close() # 关闭连接
```
客户端代码:
```python
import socket
HOST = '127.0.0.1' # 服务端IP地址
PORT = 8888 # 服务端端口号
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建一个socket对象
client_socket.connect((HOST, PORT)) # 连接服务端
n = input('请输入一个正整数:')
client_socket.sendall(n.encode()) # 将输入的数据发送给服务端
data = client_socket.recv(1024) # 接收服务端发送的数据
result = int(data.decode()) # 将接收到的数据转换为整数
print(n + '! =', result)
client_socket.close() # 关闭连接
```
运行服务端程序和客户端程序,输入一个正整数n,即可得到n!的计算结果。注意要先运行服务端程序,再运行客户端程序。
阅读全文