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'))
  • 相关阅读:
    【OpenCV】几何失真校正与局部增强
    【C#】WinForm 之 DOTA2英雄搭配助手(网页抓取+在线绿色版+源码开放)
    【MFC】指纹类型识别(OpenCV + MATLAB混合编程)
    【MATLAB】图像细化算法
    【MATLAB】形态学变换
    【MATLAB】二值化效果
    一个女程序员的奋斗史
    数据结构之------C++指针冒泡排序算法
    C++之------进制学习
    串口屏之------Usart GPU 使用手册
  • 原文地址:https://www.cnblogs.com/aomi/p/7574281.html
Copyright © 2011-2022 走看看