码迷,mamicode.com
首页 > 其他好文 > 详细

SocketServer 模块

时间:2018-01-06 19:06:27      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:serve   一个   thread   def   oca   base   env   dal   _for   

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

[root@localhost ~]# 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()    # 表示主进程不退出,如果主进程退出了,线程也就退出了,因此该方法相当于一直运行服务端来接收客户端请求,不退出
[root@localhost ~]# 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 模块

标签:serve   一个   thread   def   oca   base   env   dal   _for   

原文地址:https://www.cnblogs.com/pzk7788/p/8214798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!