socketserver模块初识

python提供了两个级别访问的网络服务:

  • 低级的网络服务支持基本的socket,它提供了标准的BSD sockets API,可以访问底层操作系统socket接口的全部方法
  • 高级别的网络服务模块socketServer,它提供了服务器中心类,可以简化网络服务器的开发。
 
1,利用 socketserver 模块做一个简单的并发编程
# server.py 
import socketserver
​
class MyServer(socketserver.BaseRequestHandler):
    def handle(self):
        # 这个handle方法是每有一个客户端发起connect之后,就会执行handle
        # 在建立连接之后的所有内容都在handle中实现就可以了
        # ThreadingTCPServer帮助我们完成了tcp协议的server端的并发
        conn = self.request
        while True:
            msg = conn.recv(1024).decode('utf-8')
            print(msg)
            conn.send(msg.upper().encode('utf-8'))
​
server = socketserver.ThreadingTCPServer(('127.0.0.1',9000),MyServer)
server.serve_forever()
View Code
# client.py
import time
import socket
​
sk = socket.socket()
sk.connect(('127.0.0.1',9000))
​
while True:
    sk.send(b'hello')
    msg = sk.recv(1024)
    print(msg)
    
sk.close()
View Code

 

 
 
posted @ 2019-04-08 22:00  __Invoker  阅读(205)  评论(0编辑  收藏  举报