• socketserver模块


    socketserver模块

    #socketserver服务端
    #使用socketserver写服务端
    #导入模块
    import socketserver
    
    #自己定义一个类,必须继承BaseRequestHandler
    class MyTcp(socketserver.BaseRequestHandler):
        #必须重写handle方法
        def handle(self):
            try:
                while True :  #通信循环
                    # print(self)
                    #给客户端回消息
                    #conn对象就是request
                    #接收数据
                    print(self.client_address)
                    data=self.request.recv(1024)
                    print(data)
                    if len(data)==0:
                        return
                    #发送数据
                    self.request.send(data.upper())
            except Exception:
                pass
    
    
    if __name__ == '__main__':
        #实例化得到一个tcp连接的对象,Threading意思是说,只要来了请求,它自动的开线程来处理连接跟交互数据
        #第一个参数是绑定的地址,第二个参数传一个类
        server=socketserver.ThreadingTCPServer(('127.0.0.1',8009),MyTcp)
        #一直在监听
        #这么理解:只要来一个请求,就起一个线程(造一个人,做交互)
        server.serve_forever()
    
    
    #client_通信循环
    import socket
    import time
    soc=socket.socket()
    
    soc.connect(('127.0.0.1',8009))
    while True:
        soc.send('xxxx'.encode('utf-8'))
        print(soc.recv(1024))
    
    

    socketserver模块udp

    #client通信循环
    import socket
    #udp
    client=socket.socket(type=socket.SOCK_DGRAM)
    
    client.sendto('lqz'.encode('utf-8'),('127.0.0.1', 8009))
    # client.sendto('hello'.encode('utf-8'),('127.0.0.1', 8009))
    # client.sendto('world'.encode('utf-8'),('127.0.0.1', 8009))
    # client.sendto(''.encode('utf-8'),('127.0.0.1', 8009))
    data=client.recvfrom(1024)
    print(data)
    
    
    #client通信循环2
    import socket
    import time
    soc=socket.socket()
    
    soc.connect(('127.0.0.1',8009))
    while True:
        soc.send('yyy'.encode('utf-8'))
        print(soc.recv(1024))
    
    
    
    #socketse服务端
    #使用socketserver写服务端
    #导入模块
    import socketserver
    
    #自己定义一个类,必须继承BaseRequestHandler
    class MyTcp(socketserver.BaseRequestHandler):
        #必须重写handle方法
        def handle(self):
            print(self)
            #数据
            print(self.request[0])
            print(self.request[1])
            print(type(self.request[1]))
            self.request[1].sendto('xxxx'.encode('utf-8'),self.client_address)
            # try:
            #     while True :  #通信循环
            #         data=self.request.recvfrom(1024)
            #         print(data)
            # except Exception:
            #     pass
    
    
    if __name__ == '__main__':
        #实例化得到一个tcp连接的对象,Threading意思是说,只要来了请求,它自动的开线程来处理连接跟交互数据
        #第一个参数是绑定的地址,第二个参数传一个类
        server=socketserver.ThreadingUDPServer(('127.0.0.1',8009),MyTcp)
        #一直在监听
        server.serve_forever()
    
    
  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/aden668/p/11493514.html
Copyright © 2020-2023  润新知