本文实例讲述了python中asyncore模块的用法,分享给大家供大家参考。具体方法如下:
实例代码如下:
##asyncore import asyncore,socket ######################################################################## class AsyncGet(asyncore.dispatcher): \"\"\" the defined class \"\"\" #---------------------------------------------------------------------- def __init__(self, host): \"\"\"Constructor\"\"\" asyncore.dispatcher.__init__(self) self.host = host self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect((host, 80)) self.request = \"Get /index.html HTTP/1.0\\r\\n\\r\\n\" self.outf = None print \"连接 :\", host def handle_connect(self): print \'connect:\', self.host pass def handle_read(self): if not self.outf: print \'正在连接:\',self.host self.outf = open(\"%s.txt\" % self.host, \'wb\') data = self.recv(8192) if data: self.outf.write(data) pass def handle_writebale(self): return len(self.request) def handle_write(self): num_sent = self.send(self.request) pass def handle_close(self): asyncore.dispatcher.close(self) print \"socket close in:\",self.host if self.outf: self.outf.close() pass if __name__ == \"__main__\": AsyncGet(\"www.python.org\") asyncore.loop() import asyncore,socket ######################################################################## class AsyncGet(asyncore.dispatcher): \"\"\" the defined class \"\"\" #---------------------------------------------------------------------- def __init__(self, host): \"\"\"Constructor\"\"\" asyncore.dispatcher.__init__(self) self.host = host self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect((host, 80)) self.request = \"Get /index.html HTTP/1.0\\r\\n\\r\\n\" self.outf = None print \"连接 :\", host def handle_connect(self): print \'connect:\', self.host pass def handle_read(self): if not self.outf: print \'正在连接:\',self.host self.outf = open(\"%s.txt\" % self.host, \'wb\') data = self.recv(8192) if data: self.outf.write(data) pass def handle_writebale(self): return len(self.request) def handle_write(self): num_sent = self.send(self.request) pass def handle_close(self): asyncore.dispatcher.close(self) print \"socket close in:\",self.host if self.outf: self.outf.close() pass if __name__ == \"__main__\": AsyncGet(\"www.python.org\") asyncore.loop()
结果文件的内容为:
302 Found Found
The document has moved here.
Apache/2.2.16 (Debian) Server at dinsdale.python.org Port 80
希望本文所述对大家的Python程序设计有所帮助。