我正在将一些ActionScript代码移植到Python中,我正在努力处理某种类似于Flash中可用的事件调度程序实现(flash.events.EventDispatcher)。
我需要创建一个客户端套接字连接到服务器,该服务器将使用横幅进行响应。然后,客户端将发送一些信息,接收新的横幅等。
我知道如何创建客户端套接字,但问题是如何处理事件,以便客户端根据事件运行适当的函数。
我已经阅读了一些关于各种模块的内容,例如Asyncore和Twisted,老实说,我正在寻找一些快速且易于实现的东西。我需要将代码移植到最小的大小作为概念证明。
以下是使用asyncore的代码的一部分:
import socket
import asyncore
class Client(asyncore.dispatcher):
def __init__(self, host, port):
asyncore.dispatcher.__init__(self)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.connect((host, port))
def handle_connect(self):
self.log('Socket connected')
def handle_close(self):
print "Socket disconnected"
self.close()
def handle_read(self):
print 'Received: ', self.recv(1024)
self.handle_close()
def connect(host, port)
clientSocket = Client(host, port)
asyncore.loop()
由于某种原因,代码会返回以下错误:
warning: unhandled write event
warning: unhandled write event
warning: unhandled write event
...
上面的代码实际上没有做任何有用的事情。我需要为IO错误添加事件处理程序以及处理来回发送的数据。但是,首先我需要整理出基础知识。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
您是否尝试重写handle_write
事件,如asyncore documentation中所述?
修改:或者,如果您想要取消警告而不是覆盖该事件,则可以使用-W
command-line option或warnings模块。