• 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)
    
  • 相关阅读:
    day4
    day3
    day2
    day1
    spring-boot-note
    spring-boot-cli
    jquery ajax rest invoke
    spring-boot
    docker mysql
    jpa OneToMany
  • 原文地址:https://www.cnblogs.com/wanyuetian/p/6823291.html
Copyright © 2020-2023  润新知