SocketServer module

来源:互联网 发布:wish在17年好做吗 知乎 编辑:程序博客网 时间:2024/06/17 04:28

介绍

  • SocketServer 是一个高级别的模块在标准库里
  • 他的目标是简单的模版化绝大多数代码,非常简单的创建网络客户端和服务器端。
  • 在这个模块里有很多的类方便你使用
  • 隐藏很多细节对你编码过程
    -面向对象的方法帮助我们组织数据和逻辑功能
    • 我们的应用将是基于事件驱动

各种类的继承关系

这里写图片描述

请求句柄的继承关系

这里写图片描述

Server

import SocketServerimport time# This class actually implements the server functionalityclass MyRequestHandler(SocketServer.StreamRequestHandler):  def handle(self):print '...connected from:', self.client_addressself.wfile.write('[%s] %s' % (ctime(),self.rfile.readline()))# Create the serverserver = SocketServer.TCPServer(("",21567), MyRequestHandler)print 'waiting for connection...'server.serve_forever()

Client

from socket import *BUFSIZ = 1024while True:  tcpCliSock = socket(AF_INET, SOCK_STREAM)  tcpCliSock.connect(('localhost', 21567))  data = raw_input('> ')  if not data:breaktcpCliSock.send('%s\r\n' % data)data = tcpCliSock.recv(BUFSIZ)if not data:breakprint data.strip()tcpCliSock.close()

客户端与服务端交互

这里写图片描述

0 0