python 与 * 绑定的zeromq与www.example.com之间有何区别127.0.0.1

llmtgqce  于 2022-11-28  发布在  Python
关注(0)|答案(2)|浏览(225)

正如标题所示,这里有两种绑定zeromq套接字的方法。

socket.bind("tcp://*:port")
socket.bind("tcp://127.0.0.1:port")

这两种方法对我都有效,但我仍然很好奇。

zaq34kh6

zaq34kh61#

一般而言,服务器系结至端点,而客户端则连接至端点,如下所示:

# Server
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")

连接套接字:

# Client
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")

通过绑定到127.0.0.1,您可以将对服务器的请求限制为仅限127.0.0.1。在本地运行将很好。但是当您使用不同IP的不同机器时,您会注意到效果。因此使用"*"

kqlmhetl

kqlmhetl2#

为了补充sitWolf的答案,请注意,您可以多次绑定一个套接字到多个协议。例如:

socket = context.socket(zmq.REQ);
socket.bind("tcp://127.0.0.1:5555"); // Bind to localhost
socket.bind("ipc:///tmp/mypipe"); // Also bind to a local pipe
socket.bind("tcp://192.168.0.2:4444"); // Also bind to a specific NIC

另外,套接字类型与绑定或连接无关,尽管对于某些套接字类型,绑定是自然的,而连接是自然的。因此,如果绑定了PUB套接字,则相应的SUB套接字连接最有意义。其他套接字,可以根据情况选择(例如,如果有一台计算机更明显地处于服务器角色,则该计算机将是要绑定的计算机)。

相关问题