一般写服务器的时候需要编写一个机器人来辅助自己测试。这里就是使用python内建的库编写一个socket机器人。
'''
Created on 2013-3-8
@author: Administrator
'''
import socket
import asyncore
import struct
import logging
import time
class 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