我希望 ro 接收一些通过 VPN 作为 UDP 数据包发送的数据。所以用 python 写了(大部分是复制的)这个程序:
import socket
import sys
HOST = ???????
PORT = 80
# SOCK_DGRAM is the socket type to use for UDP sockets
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((HOST,PORT))
data,addr = sock.recv(1024)
print "Received: %s" % data
print "Addr: %s" % addr
我应该使用什么作为主机?我知道发件人的 IP,但似乎不是本地的任何东西都会给我 socket.error: [Errno 10049]。 VPN 给我的 IP(即发件人发送到的相同 IP)?或者只是本地主机?
最佳答案
主机参数是您要绑定(bind)的主机 IP。指定您的接口(interface)之一的 IP(例如,您的公共(public) IP,或本地主机的 127.0.0.1),或使用 0.0.0.0 绑定(bind)到所有接口(interface)。如果你绑定(bind)到一个特定的接口(interface),你的服务将只在该接口(interface)上可用 - 例如,如果你想运行只能通过本地主机访问的东西,或者如果你有多个 IP 并且需要在每个 IP 上运行不同的服务器。
关于python - 在 python 中制作 UDP 套接字时使用什么主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868173/