python编写TCP程序,由客户端发送正整数n,服务端计算n!并返回。
时间: 2024-05-10 14:14:41 浏览: 125
以下是一个 Python 编写的 TCP 客户端和服务端程序,客户端发送正整数 n,服务端计算 n! 并返回给客户端:
服务端代码:
```python
import socket
import math
# 定义 TCP IP 地址和端口号
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
# 创建 TCP socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 将 socket 绑定到指定地址和端口
s.bind((TCP_IP, TCP_PORT))
# 开始监听传入连接
s.listen(1)
print('等待客户端连接...')
while True:
# 接受客户端连接
conn, addr = s.accept()
print('客户端已连接:', addr)
# 从客户端接收数据
data = conn.recv(1024)
n = int(data.decode())
print('收到客户端发送的正整数:', n)
# 计算 n!
res = math.factorial(n)
# 发送计算结果到客户端
conn.send(str(res).encode())
# 关闭连接
conn.close()
```
客户端代码:
```python
import socket
# 定义 TCP IP 地址和端口号
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
# 创建 TCP socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务端
s.connect((TCP_IP, TCP_PORT))
# 从用户输入获取正整数 n
n = int(input('请输入一个正整数:'))
# 发送数据到服务端
s.send(str(n).encode())
# 从服务端接收数据
data = s.recv(1024)
res = int(data.decode())
print(n, '! =', res)
# 关闭连接
s.close()
```
运行以上代码后,先运行服务端代码,再运行客户端代码。客户端输入一个正整数 n,服务端计算 n! 并返回结果,客户端打印结果。
阅读全文