使用python内建asyncore编写socket client

来源:互联网 发布:python串口编程实例 编辑:程序博客网 时间:2024/04/30 13:36

一般写服务器的时候需要编写一个机器人来辅助自己测试。这里就是使用python内建的库编写一个socket机器人。

'''Created on 2013-3-8@author: Administrator'''import socketimport asyncoreimport structimport loggingimport timeclass TCPClient(asyncore.dispatcher):    '''    classdocs    '''    def __init__(self):        '''        Constructor        '''        asyncore.dispatcher.__init__(self)        self.send_buf_ = ''        self.recv_buf_ = ''        self.is_conn_ = False        self.ip_ = "localhost"        self.port_map_ = 9250        pass    '''    network callback function    '''    def handle_connect( self ):        logging.debug("connect establishment ...")        self.is_conn_ = True        self.connect_time_ = time.time()        pass    def handle_close( self ):        self.is_conn_ = False        logging.debug("handle_close.")        self.close()        pass    def handle_read( self ):        sub_buf = self.recv( MAX_RECV_CACHE )        if len(sub_buf) == 0:            return        self.recv_buf_ = self.recv_buf_ + sub_buf        logging.debug("handle_read, recv size: %d"%len(self.recv_buf_))        pass    def handle_error(self):        logging.debug("handle_error")        pass    def handle_write( self ):        if not self.is_conn_:            return        logging.debug("handle_write.")        sent = self.send( self.send_buf_ )        self.send_buf_ = self.send_buf_[sent:]        pass    def writable( self ):        return (len( self.send_buf_ ) > 0)    def readable(self):        return True
0 0