python获取系统下打开的端口

想利用python往向局域网内所有机器发送一个包,不管对方机器开没开机,通通发送特定的包,用的是UDP发送,有几个问题想请教下发送之前,需要打开一个端口,随即生成一个端口... 想利用python往向局域网内所有机器发送一个包,不管对方机器开没开机,通通发送特定的包,用的是UDP发送,有几个问题想请教下
发送之前,需要打开一个端口,随即生成一个端口号,但要避免与本地端口已经打开的端口号相同,那么怎么获取系统下当前端口打开了呢?我知道Linux/windows都有特定的命令,但python可以用os.netstat -n这样的方式去获取列表,然后再处理吗?这样我觉得好蠢的方式,而且还不知道OS模块有没有这个方法。。。
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(Var_list, ('255, 255, 255, 0', port))
但这里有个问题,发送的数据时list类型,有几十个元素,每个元素是一位(byte),但我希望发送出去的数据时连着的,比如列表是这样的
Var_list = [0b0001,0b0011,0b1101.....]
我希望发送出去的是这样的数据
000100111101.....
我这样做可以吗?因为现在手上暂时没机器实验,请教下大家这样做可不可以
展开
 我来答
matlab2000
2014-01-18 · TA获得超过2323个赞
知道大有可为答主
回答量:1678
采纳率:100%
帮助的人:1060万
展开全部
第一个问题没啥,用0作为端口那么就会选择本地没有使用的端口。
第二个要么用python序列化的方法,只要对端用反序列化解释就可以。要么用自定义的,借助于struct的pack/unpack,或者如果跟c通讯,用ctypes定义结构体也可以。看你需要了
xyyvsxh
2014-01-21 · TA获得超过330个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:223万
展开全部
1.使用0作为端口输入即可
2.使用python的pack模块
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式