zoukankan      html  css  js  c++  java
  • python之多并发socket(zz)

    本文转载自:http://www.cnblogs.com/bainianminguo/p/7337210.html

    先看socket多并发的服务端的代码,这里是用多线程实现的多并发socketserver

    import socketserver
    
    # socketserver有四个基本的类,后两个不常用,这4个类处理并发请求都是同步的,他们其实不是多线程的,
    # 他们只是把socke封装了一下,加了一些方法,这里还没有实现多并发和多线程
    # 这些方法不适用每个请求都耗费长时间才能完成
    
    
    # socketserver.TCPServer
    # socketserver.UDPServer
    # socketserver.UnixStreamServer
    # socketserver.UnixDatagramServer
    # socketserver.ForkingMixIn
    # socketserver.ThreadingMixIn
    
    # ========================================================================================================
    # 我们真正要用的下面这4个方法
    # 多进程的socketserver
    # socketserver.ForkingTCPServer
    # socketserver.ForkingUDPServer
    
    # 多进程的socketserver
    # socketserver.ThreadingTCPServer
    # socketserver.ThreadingUDPServer
    
    
    # ========================================================================================================
    class MyTcpServerClass(socketserver.BaseRequestHandler):
        def handle(self):
            print("waiting for new connect:")
            print("new client :",self.client_address)
            while True:
                try:
                    data=self.request.recv(1024)
                    print("the client:",self.client_address,str(data,encoding='utf-8'))
                except Exception:
                    print("the client [%s] is unconnected!"%(self.client_address[1]))
                    self.request.close()
                    break
    
    
    
    if __name__=='__main__':
        ipbind=('127.0.0.1',2345)
        server=socketserver.ThreadingTCPServer(ipbind,MyTcpServerClass)
        server.serve_forever()

    然后看下客户端的代码:

    import socket
    
    ipbind=('127.0.0.1',2345)
    
    c=socket.socket()
    c.connect(ipbind)
    
    while True:
        c_input=input("客户端:")
        c.send(bytes(c_input,encoding='utf-8'))
        s_send=c.recv(1024)
        print("服务端:",str(s_send,encoding='utf-8'))
  • 相关阅读:
    QuantLib 金融计算
    【翻译】《理解收益率曲线》系列
    QuantLib 金融计算——C++ 代码改写成 Python 程序的一些经验
    可转债研报阅读笔记
    SWIG 3 中文手册——13. 约定
    SWIG 3 中文手册——12. 自定义功能
    SWIG 3 中文手册——11. 类型映射
    【翻译】Quant 应该怎样写博客?
    QuantLib 金融计算——案例之普通利率互换分析(2)
    仿射期限结构模型:理论与实现——实现部分
  • 原文地址:https://www.cnblogs.com/aomi/p/7574281.html
Copyright © 2011-2022 走看看