zoukankan      html  css  js  c++  java
  • python socketserver使用

    1.客户端编写

    (1).要有一个ip+port作为连接的地址 ip_port=('127.0.0.1',8098)

    (2).socket的connect方法连接地址

    (3).sendall(bytes(inp,'utf8'))来发送客户端的消息

    (4).recv(1024)接受服务端的消息,

    import socket
    
    ip_port=('127.0.0.1',8098)
    sk = socket.socket()
    sk.connect(ip_port)
    print('客户端启动.....')
    
    While True:
        inp = input(">>>")
        if inp == 'exit':
            break    
        sk.sendall(bytes(inp,'utf8'))
        server_response = sk.recv(1024)
        print(str(server_response,'utf8'))
    sk.close()

    2.服务端编写

    (1).服务端使用socketserver包,直接编写的Myserver继续socketserver.BaseRequestHandler

         socketserver中会实例话Myserver,调用run(),handle()等方法

    (2).建立相关的连接 使用socketserver.ThreadingTCPServer(地址,Myserver)

         调用server_forever()

    import socketserver
    
    class Myserver(socketserver.BaseRequestHandler):
        def handle(self):
            print('服务端启动....')
            while True:
                conn = self.request
                print(self.client_address)
                while True:
                    client_data = conn.recv(1024)
                    print(str(client_data,'utf8'))
                    print('waiting...')
                    server_response = input('>>>>')
                    conn.sendall(bytes(server_response,'utf8'))
                conn.close()
    
    
    if __name__ == "__main__":
        server = socketserver.ThreadingTCPServer(('127.0.0.1',8098),Myserver)   #创建socket链接
    
        server.serve_forever()
  • 相关阅读:
    Go源码文件与命令
    K8s控制器
    odoo 在form视图sheet右上角增加按钮
    odoo 常用widget
    odoo tree视图中实现横向滚动条
    可能是智障的高二生活
    千题计划
    闲谈
    线性代数与simplex
    好题集锦
  • 原文地址:https://www.cnblogs.com/aniuzaixian/p/8116953.html
Copyright © 2011-2022 走看看