关于创建zeromq消息队列,设置和更改IP地址,远程可以访问,不只是本地链接。python代码。

关于zeromq的创建,绑定本地,和绑定其他客户端的方法。

网上一大堆关于zmq的通信模式的介绍,包括三种类型,具体我就不在描述。

但是他们给的demo,都是创建本地作为server服务端,也作为client客户端的这个方式。都将端口设置为5555。这个方式是本地连本地,本地控制本地。

本地作为客户端:

作为客户端,发送信息。

import zmq

context = zmq.Context()
# Socket to talk to server
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
socket.send_string(send_msg)

本地同时作为服务端:

作为服务器端,接受信息。

import zmq

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
message = socket.recv_string()

注意:REQ-REP模式是阻塞式的,也就是说必须要client先发送一条消息给server,然后server才可以返回一个response给client。任何顺序上的错误都会导致报错。

当我们的本机是服务端,接收从其他电脑,客户端发来的消息队列的时候。此时,只需要将本地的ip地址,作为tcp协议的地址,本地服务端绑定这个地址和端口,远程客户端,也链接这个ip地址和窗口即可。下面是相应的python代码。

PS:Windows查询IP地址的命令行为:ipconfig

Mac或者Linux查询IP地址的命令行为:ifconfig

我们查询到作为服务端的电脑的IP地址为:192.168.3.41。因此,将tcp的设置改为如下, 便可达到远程发送信息,本地接受信息的目的。其中的端口port,可以随意设置,5000,5555,都可以。

远程其他电脑作为客户端:

客户端,链接服务端的ip地址,因此是用的connect。

import zmq

context = zmq.Context()
# Socket to talk to server
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://192.168.3.41:5000")

socket.send_string(send_msg)

本地作为服务端:

服务端,从这个ip地址和5000端口接受信息,因此是绑定bind到。

import zmq

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://192.168.3.41:5000")
message = socket.recv_string()

猜你喜欢

转载自blog.csdn.net/qq_32998593/article/details/114264363