(python) use of socketserver


The use of socketserver based on TCP:

Server

import socketserver

class MyTcpHandler (socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            try:
                data=self.request.recv(1024)
                if not data:break#This line of code is for linux system
                self.request.send(data.upper())
            except ConnectionResetError:
                break
        self.request.close()

if __name__ == '__main__':
    server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTcpHandler)
    server.serve_forever()

self.request in this code is equivalent to a conn:


client

from socket import *
import them

client = socket (AF_INET, SOCK_STREAM)
client.connect(('127.0.0.1',8080))

while True:
    msg='%s hello'%os.getpid()
    client.send(msg.encode("utf-8"))
    data=client.recv(1024)
    print(data.decode('utf-8'))

The use of socketserver based on UDP:

Server

import socketserver

class MyUdpHandler(socketserver.BaseRequestHandler):
    def handle(self):
        res=self.request[0]
        print('Data sent by client: ',res)

        self.request[1].sendto(res.upper(),self.client_address)


if __name__ == '__main__':
    server=socketserver.ThreadingUDPServer(('127.0.0.1',8080),MyUdpHandler)
    server.serve_forever()

At this point self.request is a tuple:


client

from socket import *
import them

client = socket (AF_INET, SOCK_DGRAM)

while True:
    msg='%s hello'%os.getpid()
    client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
    data,server_addr=client.recvfrom(1024)
    print(data.decode('utf-8'))

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325749236&siteId=291194637