Python全栈之路-Day38

基于tcp协议的socketserver

server:


#!/usr/bin/env python
# __Author__: "wanyongzhen"
# Date: 2017/5/7

# 服务端特点是:
# 1 一直运行提供服务(链接循环)(基于一个链接通信循环)
# 2 绑定一个唯一的地址

# import socket
# phone = socket.socket()
# phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 端口重用
# phone.bind(('127.0.0.1',8080))
# phone.listen(5)
# conn,addr = phone.accept()
# while True:
#     print(conn)
#     msg = input('>>: ')
#     conn.send(msg.encode())

import socketserver

class FTPServer(socketserver.BaseRequestHandler):
    def handle(self):
        print(self.request)
        while True:
            data = self.request.recv(1024)
            print(data)
            self.request.send(data.upper())
if __name__ =='__main__':
    obj = socketserver.ThreadingTCPServer(('127.0.0.1',8081),FTPServer)
    obj.serve_forever() # 链接循环(多线程)

client1:


#!/usr/bin/env python
# __Author__: "wanyongzhen"
# Date: 2017/5/7

import socket

phone = socket.socket()
phone.connect(('127.0.0.1', 8081))

while True:
    msg = input('>>: ')
    phone.send(msg.encode('utf-8'))
    data = phone.recv(1024)
    print(data)

client2:


#!/usr/bin/env python
# __Author__: "wanyongzhen"
# Date: 2017/5/7

import socket

phone = socket.socket()
phone.connect(('127.0.0.1', 8081))

while True:
    msg = input('>>: ')
    phone.send(msg.encode('utf-8'))
    data = phone.recv(1024)
    print(data)
原文地址:https://www.cnblogs.com/wanyuetian/p/6823291.html