Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 python 3';MarkerServer';对象没有属性';setsockopt';_Python 2.7_Python 3.x_Sockets_Setsockopt - Fatal编程技术网

Python 2.7 python 3';MarkerServer';对象没有属性';setsockopt';

Python 2.7 python 3';MarkerServer';对象没有属性';setsockopt';,python-2.7,python-3.x,sockets,setsockopt,Python 2.7,Python 3.x,Sockets,Setsockopt,我有一个旧的python 27代码,我正在尝试将其移植到python 35,但对以下部分有疑问: class MarkerServer(asyncore.dispatcher): def __init__(self, queue, proto): asyncore.dispatcher.__init__(self) self.queue = queue if proto.lower() == 'tcp': logger.debug('Opening T

我有一个旧的python 27代码,我正在尝试将其移植到python 35,但对以下部分有疑问:

class MarkerServer(asyncore.dispatcher):

def __init__(self, queue, proto):

    asyncore.dispatcher.__init__(self)
    self.queue = queue
    if proto.lower() == 'tcp':
        logger.debug('Opening TCP socket.')
        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
        self.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
        self.setblocking(0)
        self.bind(('', PORT))
        self.listen(5)
    elif proto.lower() == 'udp':
        logger.debug('Opening UDP socket.')
        self.create_socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.setblocking(0)
        self.bind(('', PORT))
        handler = MarkerHandler(self, self.queue)
    else:
这将返回以下错误:

    self.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    AttributeError: 'MarkerServer' object has no attribute 'setsockopt'

谢谢你对jasonharper的评论。 我意识到python 35的asyncore模块中还有一个更深层次的问题。并不是所有的方法都被移植了,并且产生了错误。
修改模块后问题解决。

我认为应该是
self.socket.setsockopt(…)
。做了哪些修改?