写一个python tcp服务器, 可循环接受数据
时间: 2024-03-16 10:43:37 浏览: 131
好的,以下是一个简单的 Python TCP 服务器示例代码,可以循环接受数据:
```python
import socket
HOST = '127.0.0.1' # 服务器主机地址
PORT = 8888 # 服务器监听端口
BUFFER_SIZE = 1024 # 缓冲区大小,即接收数据的最大长度
# 创建 TCP 服务器套接字对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定服务器地址和端口
server_socket.bind((HOST, PORT))
# 设置监听队列的最大长度
server_socket.listen(1)
print('TCP 服务器已启动,等待客户端连接...')
while True:
# 等待客户端连接,一旦有客户端连接进来,则返回客户端的套接字对象和客户端地址
client_socket, client_addr = server_socket.accept()
print(f'客户端 {client_addr} 已连接')
while True:
# 接收客户端发送的数据
data = client_socket.recv(BUFFER_SIZE)
if not data:
# 如果客户端关闭了连接,则退出循环
break
# 处理接收到的数据
print(f'收到来自客户端 {client_addr} 的数据:{data.decode()}')
# 发送响应数据给客户端
response_data = f'已收到您的消息:{data.decode()}'.encode()
client_socket.sendall(response_data)
print(f'客户端 {client_addr} 已断开连接')
# 关闭客户端套接字对象
client_socket.close()
# 关闭服务器套接字对象
server_socket.close()
```
您可以将以上代码保存到一个 Python 文件中,例如 `tcp_server.py`,然后在命令行中执行 `python tcp_server.py`,即可启动 TCP 服务器。每当有客户端连接进来时,服务器会打印出客户端的地址,并循环接收客户端发送的数据。当客户端关闭连接时,服务器会打印出客户端的地址,并继续等待下一个客户端连接。
阅读全文