使用c#和python通过Router-Dealer Proxy发送消息

时间:2016-08-17 17:23:13

标签: c# python proxy zeromq netmq

我可以使用简单的请求 - 回复让c#(客户端)和python(服务器)相互通信。但是,我希望我在c#asp.net上构建的web应用程序稳定并需要更多的客户端和服务器,所以我尝试使用带有python的Router-Dealer Proxy来连接c#和python。

我首先尝试运行代理python脚本,然后运行c#(客户端),然后运行python(服务器)。但是,当我运行python(服务器)时,它会给我一个“正在使用的地址”错误消息。

我是以错误的顺序运行它们还是代理python脚本有问题(如下所示)?

5602 = c#client

5603 = python服务器

def main():

context = zmq.Context()

# Socket facing clients
frontend = context.socket(zmq.ROUTER)
frontend.bind("tcp://*:5602")

# Socket facing services
backend  = context.socket(zmq.DEALER)
backend.bind("tcp://*:5603")

zmq.proxy(frontend, backend)

# We never get here…
frontend.close()
backend.close()
context.term()

if __name__ == "__main__":
main()

1 个答案:

答案 0 :(得分:0)

我假设您的服务器使用bind,因此代理应该connect给他们,而不是使用bind

注意:在zeromq中,应用程序启动的顺序并不重要,因此您可以将代理告诉connect到尚未存在的服务器,当服务器启动时,连接将做成。