从asyncore过渡到asyncio

com*_*nks 6 asyncore python-3.x python-asyncio macos-sierra

我正在尝试从过渡asyncoreasyncio从我将一些旧代码从python 27移植到python 35.但我对两者都不是很熟悉.

以下是有问题的部分的浓缩版本:

import socket
import asyncore


mapDict = {}
fc = FeedbackController(port)
fc.start()

class FeedbackController(object):
     def __init__(self, port=None):       
                self.ipcchannel = IPCConnectionHandler(self, theMap=mapDict)
                self.udpconnectionhandler = UDPDispatcher(self, theMap=mapDict)


    def start(self):
                asyncore.loop(timeout=60.0,map=theMap)

    …

class UDPDispatcher(asyncore.dispatcher):
    def __init__(self, theMap):
        asyncore.dispatcher.__init__(self, map=theMap)
        self.create_socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.bind((LOCALHOST, FC_PORT))

class IPCConnectionHandler(asyncore.dispatcher):
    def __init__(self,theMap=None):
        asyncore.dispatcher.__init__(self, map=theMap)
        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.bind((LOCALHOST, IPC_PORT))
        self.listen(5)
Run Code Online (Sandbox Code Playgroud)

目前,我正在Macos Sierra上运行,当它asyncore.loop被召唤时它会崩溃

任何关于如何过渡的帮助都会很棒