python监听多个端口

12个月前 (11-09 08:34)阅读178回复0
吕岭路
吕岭路
  • 注册排名10019
  • 经验值10
  • 级别
  • 主题2
  • 回复0
楼主

Python是一种十分流行的编程语言,支持很多高级特性,其中监听多个端口是一个十分有用的功能。具体实现可以通过以下步骤来完成:

import socket
# 获得IP地址
def get_local_ip() ->str:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
s.close()
return ip
# 监听指定端口
def listen_port(port: int) ->None:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((get_local_ip(), port))
s.listen(1)
conn, addr = s.accept()
with conn:
print(f'Connected by {addr}')
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
# 监听多个端口
if __name__ == '__main__':
ports = [3000, 4000, 5000]
for port in ports:
listen_port(port)

上面是一个简单的实现方式,主要包含了两个函数,分别是获取本地IP地址和监听指定端口。在实现时,我们首先通过socket模块获取本地IP地址,然后使用socket函数与端口绑定,并监听该端口。当有连接建立时,我们可以接收到传入的数据,并将其原封不动地发送回去。最后,我们通过建立多个端口的方式实现了同时监听多个端口的功能。

当然,在实际使用中,我们还需要考虑多线程、异步等高级特性的应用,以实现更加高效的操作。不过,这里的代码可以作为一个快速入门的例子,供大家参考。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/2704.html

0
回帖

python监听多个端口 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息