Python 制作TCP不间断接受器
时间: 2024-08-17 21:01:57 浏览: 20
在Python中制作一个TCP不间断接收器,通常会使用socket库来创建服务器端套接字并监听客户端连接。这里是一个简单的例子,展示了如何使用`select()`函数实现非阻塞模式下的多路复用,使得服务器可以持续地接收来自多个客户端的数据:
```python
import socket
import select
# 创建一个监听套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8080))
server_socket.listen(5)
while True:
# 获取可以读写的套接字集合
read_sockets, _, error_sockets = select.select([server_socket] + [], [], [])
for sock in read_sockets:
if sock is server_socket: # 新的连接到来
client, addr = server_socket.accept()
print(f"Accepted connection from {addr[0]}:{addr[1]}")
read_sockets.append(client) # 添加新连接到可读列表
else: # 数据已准备好,处理客户端数据
data = sock.recv(1024) # 接收数据,按需调整大小
if not data: # 如果接收空数据,可能是断开连接
print("Client disconnected")
sock.close()
read_sockets.remove(sock)
else:
print(f"Received data: {data.decode('utf-8')}")
```
这个脚本会在指定的本地地址(这里是'localhost'和8080端口)上等待新的TCP连接,并且一旦有数据可读,就会打印出收到的信息。如果客户端断开连接,它会被从读取列表中移除。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)