SocketServer 模块

Posted pzk7788

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SocketServer 模块相关的知识,希望对你有一定的参考价值。

SocketServer 模块是一个基于 socket 模块的高级别的套接字通讯模块,用于简化网络客户与服务器的实现,它支持使用多进程或多线程处理客户端请求

[[email protected] ~]# cat socketserver.py 
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):    # 定义一个类,并继承BaseRequestHandler这个类
    def handle(self):                                   # 重写handle方法,handle用来处理客户端请求
        while True:
            self.data = self.request.recv(1024).strip()    2.接收客户端请求
            print(self.client_address[0])
            print(self.data)
            self.request.sendall(self.data.upper())        3.发送客户端请求结果
            if not self.data:
                break

if __name__ == "__main__":
    HOST, PORT = "localhost", 1234
    server = SocketServer.ThreadingTCPServer((HOST, PORT), MyTCPHandler)    1.创建一个TCP数据流的套接字(实现了多线程)
    server.serve_forever()    # 表示主进程不退出,如果主进程退出了,线程也就退出了,因此该方法相当于一直运行服务端来接收客户端请求,不退出
[[email protected] ~]# cat client.py 
#!/usr/bin/env python
#-*- coding: utf8 -*-

import time
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((127.0.0.1, 1234))

while True:
    s.sendall(Hello World)
    data = s.recv(1024)
    print(data)
    time.sleep(1)

s.close()

可以有多个客户端连接,服务端会多线程处理

 

 

 

 

 

         

以上是关于SocketServer 模块的主要内容,如果未能解决你的问题,请参考以下文章

数据库:socketserver模块MySQL

python网络编程 socketserver模块

八. 网络编程( socketserver 模块 初级使用)

Python-SocketServer模块

socketserver模块使用与源码分析

Python 模块 socketserver 以及 线程进程