我正在构建一个Python服务器,基本上有一堆端口监听连接。当建立连接时,端口会输出一条消息,关闭连接并重置(即等待下一个连接)。
期望的功能:
为端口列表中的每个端口创建TCP套接字(通过参数动态填充)。
监听连接。
当建立连接时,发送消息并断开连接。
继续监听。
我感觉我的答案可能涉及到多线程,但我不确定......目前我的代码如下:
期望的功能:
为端口列表中的每个端口创建TCP套接字(通过参数动态填充)。
监听连接。
当建立连接时,发送消息并断开连接。
继续监听。
我感觉我的答案可能涉及到多线程,但我不确定......目前我的代码如下:
for port in portlist:
ds = ("0.0.0.0", port)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(ds)
server.listen(1)
while 1:
connection, address = server.accept()
message="message\n"
connection.send(message)
connection.close()
while
循环移动到for
循环之外。棘手的不是在许多端口上侦听,而是从许多端口接受和服务客户端连接:为此,您可以使用select
模块的select
或epoll
函数来指定要监视的端口,并循环处理报告活动的端口,或者使用线程。 - Tony Delroy