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

第八 socketserver

时间:2017-06-26 12:41:44      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:print   new   实现   use   base   import   div   port   round   

一、说明socketserver

SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进 程” 专门负责处理当前客户端的所有请求。

二、socketserver 实例

服务器端:

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

import socketserver
class MyTcpHandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            print("New conn:",self.client_address)
            data = self.request.recv(1024)
            if not data:
                break
            print("client says:",data.decode())
            self.request.send(data)

if __name__ == "__main__":
    HOST,PORT = "127.0.0.1",57000
    server = socketserver.ThreadingTCPServer((HOST,PORT),MyTcpHandler)
    server.serve_forever()

客户端:

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

import socket
IpPort = (127.0.0.1,57000)

Fsk = socket.socket()
Fsk.connect(IpPort)

while True:
    Msg = input("client>>").strip()
    Fsk.sendall(bytes(Msg,"utf8"))
    ServerReplay = Fsk.recv(1024)
    print("Server",str(ServerReplay,utf8))

Fsk.close()

运行服务器端

C:\Users\AppData\Local\Programs\Python\Python36-32\python.exe D:/py_pro/s12/day08/LearnSocketserver.py
New conn: (127.0.0.1, 65418)
client says: hi
New conn: (127.0.0.1, 65418)
client says: hhh
New conn: (127.0.0.1, 65418)
New conn: (127.0.0.1, 65433)
client says: lakaka
New conn: (127.0.0.1, 65433)
client says: m
New conn: (127.0.0.1, 65418)

运行客户端:

C:\Users\AppData\Local\Programs\Python\Python36-32\python.exe D:/py_pro/s12/day08/SocketServerClient.py
client>>hi
Server hi
client>>hhhm
Server hhh
client>>m
Server m
client>>

 

第八 socketserver

标签:print   new   实现   use   base   import   div   port   round   

原文地址:http://www.cnblogs.com/ckl893/p/7079635.html

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