python - 在 python 中制作 UDP 套接字时使用什么主机?

标签 python sockets udp

我希望 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/

相关文章:

python - 按条件和列中的最小值过滤 Pandas 数据框

python - 计算 n 个列表的所有可能组合的总和并检查与特定值的比较

python - OCPP Python 包文档

c - AF_UNIX 套接字 : select() firing when there is nothing to read

node.js - 如何在 NodeJS 中测试 socket.setKeepAlive

c++ - UDP 客户端到 UDP 服务器的问题,出现 10057 错误

Python 和 Pygame 值正在更新,但代码未考虑更新?

c - 为什么我的 C 套接字文件传输(服务器/客户端)程序只能正确运行一次?

windows - 在某台PC上,当UDP数据包大小小于12字节时,UDP数据包将被丢弃。我该如何找出原因?

c - 将 UDP 数据包识别为不同的连接