python--socketserver

用socketserver,实现多人聊天的功能

import socketserver
class MyServer(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            msg=self.request.recv(1024).decode('utf-8')
            if msg=='q':break
            print(msg)
            info=input('%s>>>'%msg[:2])
            self.request.send(info.encode('utf-8'))
if __name__=='__main__':
    server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer)
    server.serve_forever()


import socketserver
class Myserver(socketserver.BaseRequestHandler):   #建立一个类,继承socketserver.BaseRequestHandler
    def handle(self):    #必须有这个方法名 ,因为源码中会调用这个方法
        while True:      #self.request 类似于conn
            msg=self.request.recv(1024).decode('utf-8')
            if msg=='q':
                break
            print(msg)
            cmd=input('%s>>'%msg[:2])
            self.request.send(cmd.encode('utf-8'))

if __name__=='__main__':
    server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)#启动线程
    server.serve_forever()  #让线程一致运行
# 设置allow_reuse_address允许服务器重用地址
    socketserver.TCPServer.allow_reuse_address = True
    # 创建一个server, 将服务地址绑定到127.0.0.1:9999
    server = socketserver.ThreadingTCPServer(('127.0.0.1', 8080), Myserver)
    # 让server永远运行下去,除非强制停止程序
    server.serve_forever()
server
import socket
sk=socket.socket()
sk.connect(('127.0.0.1',8080))
while True:
    msg=input('>>>')
    if msg=='q':
        sk.send(b'q')
        break
    sk.send(('美团:'+msg).encode('utf-8'))
    ret=sk.recv(1024).decode('utf-8')
    print(ret)
clint1
import socket
sk=socket.socket()
sk.connect(('127.0.0.1',8080))
while True:
    msg=input('>>>')
    if msg=='q':
        sk.send(b'q')
        break
    sk.send(('大众点评:'+msg).encode('utf-8'))
    ret=sk.recv(1024).decode('utf-8')
    print(ret)
clint2
posted on 2018-02-04 21:04  V神丫丫  阅读(192)  评论(0编辑  收藏  举报