socket服务端循环监听端口
时间: 2023-08-06 21:05:47 浏览: 182
以下是一个简单的Python示例代码,用于循环监听端口并接收客户端连接请求:
```python
import socket
HOST = 'localhost' # 监听的IP地址,默认为本机地址
PORT = 8888 # 监听的端口号
BUFSIZ = 1024 # 缓冲区大小,用于接收客户端数据
# 创建一个 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定监听的地址和端口号
server_socket.bind((HOST, PORT))
# 开始监听端口,最大连接数为5
server_socket.listen(5)
print('等待客户端连接...')
while True:
# 接收客户端连接请求
client_socket, addr = server_socket.accept()
print('客户端已连接:', addr)
# 接收客户端发送的数据,并返回响应数据
while True:
data = client_socket.recv(BUFSIZ)
if not data:
break
print('收到客户端数据:', data.decode())
client_socket.send(('你发送的数据是:' + data.decode()).encode())
# 关闭客户端连接
client_socket.close()
```
在以上代码中,我们首先创建了一个 socket 对象,并使用 `bind()` 方法将其绑定到要监听的地址和端口号上。接着,我们使用 `listen()` 方法开始监听端口,并通过一个无限循环不断接收客户端连接请求。每当有新的客户端连接时,我们就会创建一个新的 socket 对象,并使用 `accept()` 方法接收客户端连接。然后,我们通过一个内部的循环来接收客户端发送的数据,并返回响应数据。当客户端关闭连接时,我们就会跳出循环并关闭客户端 socket 对象。
阅读全文