python编写TCP程序,由客户端发送正整数n,服务端计算n!并返回
时间: 2024-05-07 08:19:03 浏览: 12
以下是一个简单的Python TCP程序,客户端发送正整数n,服务端计算n!并返回结果:
服务端代码:
```python
import socket
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
# 创建socket对象
server_socket = socket.socket()
# 绑定地址和端口号
server_socket.bind(('127.0.0.1', 8888))
# 开始监听
server_socket.listen(5)
print('服务端已启动,等待客户端连接...')
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)
# 接收客户端发送的数据
data = client_socket.recv(1024)
n = int(data.decode())
# 计算n!
result = factorial(n)
# 发送计算结果给客户端
client_socket.send(str(result).encode())
# 关闭客户端socket连接
client_socket.close()
```
客户端代码:
```python
import socket
# 输入正整数n
n = int(input('请输入正整数n:'))
# 创建socket对象
client_socket = socket.socket()
# 连接服务器
client_socket.connect(('127.0.0.1', 8888))
print('已连接到服务器...')
# 发送数据给服务器
client_socket.send(str(n).encode())
# 接收服务器返回的计算结果
data = client_socket.recv(1024)
result = int(data.decode())
print('%d! = %d' % (n, result))
# 关闭socket连接
client_socket.close()
```
运行服务端程序后,客户端程序会提示输入一个正整数n,输入完毕后,客户端程序会将n发送给服务端,服务端程序会计算n!并将结果发送给客户端程序,客户端程序收到数据后输出计算结果。