如果我有一个像这样的 UDP 套接字:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
并且套接字可以发送数据:
sock.sendto("message", address)
如何找到套接字的端口 - 将数据发送到地址
时使用的端口?
编辑:我尝试了sock.getsockname()
,但这会引发错误:[Errno 10022]提供了无效的参数
最佳答案
我对 python 套接字类不太熟悉,但根据我在这里读到的内容 https://docs.python.org/2/library/socket.html#socket.getnameinfo
也许
socket.getnameinfo()[1]
可能有效
因为 .getsockname() 返回一个 2 元组(主机、端口)
必须先绑定(bind)套接字,然后才能通过 sock.bind(('', 0))
使用 .getsockname()
。
希望这有帮助!
关于Python - 如何获取发送方套接字的端口(UDP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47367797/