zoukankan      html  css  js  c++  java
  • socketserver 模块的使用

    socketserver模块的使用

    socketserver是一个集成socket,thread,select模块的综合模块,主要用实现用较为简单的方法建立服务端的模块。可以应对较小并发的客户需求。

    socketserver建立TCP服务端。

    服务端

    import socketserver
    
    #处理的方法(服务端工作的方式的类)
    class Myhandler(socketserver.BaseRequestHandler):
        def handle(self):#开始工作自动执行下列函数
            print(self.server)#socketserver对象
            print(self.client_address)#客户端地址
            print(self.request)#客户端连接对象
            while True:
                data = self.request.recv(1024)
                self.request.send(data.upper())
    
    server = socketserver.ThreadingTCPServer(("127.0.0.1",6666),Myhandler)#一以线程的方式建立tcp服务端
    server.serve_forever()#让服务端持续工作

    客户端

    import socket
    client = socket.socket()
    client.connect(("127.0.0.1",6666))
    
    while True:
        msg = input(">>>")
        if not msg:
            continue
        client.send(msg.encode("utf-8"))
        data = client.recv(1024)
        print(data.decode("utf-8"))

    基于UDP的socketserver

    服务端

    import socketserver
    
    addr  = ("127.0.0.1",3239)
    
    
    class Myhandle(socketserver.BaseRequestHandler):
        def handle(self):
            print(self.server)#socketserver对象
            print(self.client_address)
            print(self.request)#数据,和服务端socket对象
            data = self.request[0]
            self.request[1].sendto(data.upper(),self.client_address)
    
    
    server = socketserver.ThreadingUDPServer(addr,Myhandle)
    server.serve_forever()

    客户端

    import socket
    client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    addr  = ("127.0.0.1",3239)
    while True:
        msg = input(">>>")
        client.sendto(msg.encode("utf-8"),addr)
        data = client.recvfrom(1024)
        print(data[0].decode("utf-8"))
  • 相关阅读:
    二分查找经典题型
    部队侦察
    取随机数函数的使用
    猜拳游戏
    Learning C Struct
    Linux shell get random number
    Linux Bash shell one practice : array if else
    Linux shell misc
    Bash Shell read file line by line and substring
    storm的并发和消息保障性
  • 原文地址:https://www.cnblogs.com/msj513/p/9963655.html
Copyright © 2011-2022 走看看