如何在Python中使用socket监听端口?
时间: 2024-11-22 14:34:05 浏览: 9
在Python中,你可以使用内置的socket模块来监听端口。以下是一个简单的例子,展示如何创建一个TCP服务器,监听指定端口:
```python
import socket
def start_server(host='localhost', port=5000):
# 创建一个TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 配置服务器地址和端口
server_address = (host, port)
# 设置非阻塞模式,以便及时响应其他请求
server_socket.setblocking(0)
try:
# 开始监听连接请求
server_socket.bind(server_address)
server_socket.listen(1) # 最大排队等待连接数为1
print(f'Server started on {server_address}')
while True:
# 接受新连接
client_connection, client_address = server_socket.accept()
print(f'Accepted connection from {client_address}')
# 处理来自客户端的请求(这里仅做简单示例,实际需要根据业务逻辑编写)
request_data = client_connection.recv(1024).decode()
print(f'Received data: {request_data}')
# 发送响应或关闭连接
response = 'Hello from server!'
client_connection.sendall(response.encode())
client_connection.close() # 关闭连接
except KeyboardInterrupt:
print('Closing server...')
finally:
# 关闭套接字
server_socket.close()
# 调用函数开始监听
start_server()
```
在这个例子中,我们首先创建了一个TCP套接字,绑定到指定的主机和端口上。然后进入一个无限循环,监听新连接,并对每个新连接进行接收、处理和发送响应的操作。如果遇到`Ctrl+C`中断,会优雅地关闭服务器。
阅读全文