zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    数组
    mysql优化思路
    mysql_存储过程
    mysql_函数
    mysql_结构
    mysql_触发器
    mysql_变量
    mysql_事务
    mysql总结
    mysql备份
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/8414300.html
Copyright © 2011-2022 走看看