python SocketServer 框架编程

时间:2022-05-16 06:15:29

1. SocketServer框架

  在python中,socketserver是一个已集成的模块,它有以下特点:
  

  • 可用SocketServer框架创建TCP和UDP服务器。
  • 在后台为你做好每一个基础步骤。
  • 可以手动创建一个服务器欺骗客户端和分析它的行为。

2. SocketServer模块的用法

  • 必须是BaseRequestHandler的子类
  • 重写handle()函数
  • 调用handle_request或者serve_forever处理客户端程序。
  • 对TCP 服务端来说
    • self.request是客户端Socket
    • self.client_address是客户端的详细地址

3. python 代码

服务端:

#!/usr/bin/env python
# _*_ coding=utf-8 _*_

import SocketServer

class SockHandler(SocketServer.BaseRequestHandler):

    def handle(self):
        print "接收到客户端的一个连接:",self.client_address
        data = 'start'

        while len(data):
            data = self.request.recv(2048)
            self.request.send("返回: " + data)

        print "客户端关闭... ..."


serAddr = ("0.0.0.0",8888)
print "等待连接... ..."

server = SocketServer.TCPServer(serAddr,SockHandler)

server.serve_forever()

客户端用nc命令进行测试:

$ nc 192.168.1.95 8888

你好
返回: 你好
okay
返回: okay