zoukankan      html  css  js  c++  java
  • python socketserver编程

    socket并不能多并发,只能支持一个用户,socketserver可以实现并发, 简化了编写网络服务程序的任务,socketserver是socket的在封装。socketserver中包含了两种类,一种为服务类(server class),一种为请求处理类(request handle class)。前者提供了许多方法:像绑定,监听,运行…… (也就是建立连接的过程) 后者则专注于如何处理用户所发送的数据(也就是事务逻辑)。

    创建socketserver的步骤:

    First, you must create a request handler class by subclassing the BaseRequestHandlerclass and overriding its handle() method; this method will process incoming requests.   
    Second, you must instantiate one of the server classes, passing it the server’s address and the request handler class.
    Then call the handle_request() or serve_forever() method of the server object to process one or many requests.
    Finally, call server_close() to close the socket.

    server端:

    import socketserver
    class MyServer(socketserver.BaseRequestHandler):
        def handle(self):
            print('server端启动')
            while True:
           # self.request is the TCP socket connected to the client
           #!!!!!!!!
    
                conn=self.request
                print(self.client_address)
                while True:
                    client_data=conn.recv(1024)
                    print(str(client_data,'utf8'))
                    inp=input('>>>>')
                    conn.send(bytes(inp,'utf8'))
                conn.close()
    if __name__=='__main__':
        server=socketserver.ThreadingTCPServer(('127.0.0.1',8002),MyServer)
        server.serve_forever()

    client端:
    import socket
    sk=socket.socket()
    sk.connect(('127.0.0.1',8002))
    print('client启动')
    while True:
        inp=input('>>>>')
        sk.send(bytes(inp,'utf8'))
        server_response=sk.recv(1024)
        print(str(server_response,'utf8'))
        if inp=='q':
            break
    sk.close()
    写出漂亮的博客就是为了以后看着更方便的。
  • 相关阅读:
    中国VR公司的详尽名单
    maven打包源代码sources.jar和javadoc.jar帮助文档
    中国计算机学会推荐国际学术刊物
    myhuiban会议,期刊,科研人员,计算机类会议大全
    如何写mysql的定时任务
    mysql系列命令解释
    Bootstrap 导航元素
    base64对文件进行加密
    我最在行 诗词 连续错误的
    <% %> in html
  • 原文地址:https://www.cnblogs.com/zhaowei5/p/9295783.html
Copyright © 2011-2022 走看看