首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyZMQ:拒绝许可

PyZMQ:拒绝许可
EN

Stack Overflow用户
提问于 2015-04-29 17:42:33
回答 1查看 3.2K关注 0票数 1

代码:

代码语言:javascript
复制
import zmq
from multiprocessing import Process
import time

def server():
    port = '5556'
    context = zmq.Context()
    socket = context.socket(zmq.PAIR)
    socket.bind('tcp://*:%s' % port)

    for i in range(10):
        socket.send('server to client')
        msg = socket.recv()
        print msg
        time.sleep(1)

def client():
    port = '5556'
    context = zmq.Context()
    socket = context.socket(zmq.PAIR)
    socket.bind('tcp://127.0.0.1:%s' % port)

    for i in range(10):
        msg = socket.recv()
        print msg
        socket.send('msg to server')
        time.sleep(1)

if __name__ == '__main__':
    Process(target=server, args=()).start()
    Process(target=client, args=()).start() 

错误:

代码语言:javascript
复制
Process Process-2:
Traceback (most recent call last):
File "C:\Python27\lib\multiprocessing\process.py", line 258, in _bootstrap
self.run()
File "C:\Python27\lib\multiprocessing\process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "C:\...\zmqtest.py", line 21, in client
socket.bind('tcp://127.0.0.1:%s' % port)
File "socket.pyx", line 444, in zmq.backend.cython.socket.Socket.bind (zmq\backend\cython\socket.c:4076)
File "checkrc.pxd", line 21, in zmq.backend.cython.checkrc._check_rc (zmq\backend\cython\socket.c:6032)
ZMQError: Permission denied

它能为服务器启动进程1吗?为什么有不同的许可?

尝试学习ZMQ,但无法获得它们的任何简单示例来运行这一点。有什么地方可以打开ZMQ的权限吗?找不到关于这件事的文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 17:55:29

您只能在一侧(服务器)上使用.bind。在客户机上,您必须使用.connect,尽管我得到的是“已在使用的地址”错误,而不是拒绝权限。

尝试更改它,以便客户端连接并查看它是否适合您:

代码语言:javascript
复制
import zmq
from multiprocessing import Process
import time

def server():
    port = '5556'
    context = zmq.Context()
    socket = context.socket(zmq.PAIR)
    socket.bind('tcp://*:%s' % port)

    for i in range(10):
        socket.send('server to client')
        msg = socket.recv()
        print msg
        time.sleep(1)

def client():
    port = '5556'
    context = zmq.Context()
    socket = context.socket(zmq.PAIR)
    socket.connect('tcp://127.0.0.1:%s' % port)

    for i in range(10):
        msg = socket.recv()
        print msg
        socket.send('msg to server')
        time.sleep(1)

if __name__ == '__main__':
    Process(target=server, args=()).start()
    Process(target=client, args=()).start()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29950824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档