python_network
	
		
		  阅读量次
		
		
	
	arashrun
	2023-04-01 10:13:37
		
    
		Categories:
            
                
                    
                        
                        python
                        
                      
                    
                
            
    
    
    
		Tags:
            
                
                    
                        
                        网络
                        
                    
                
            
    
		 
 
	 socket
 asyncore
- 为了后向兼容,新代码建议使用 
asyncio 。 
- 模块提供了基本的基础设施,用于实现异步socket服务器和socket客户端
 
- 单处理器实现同时做多件不同的事只有两种方式,一种是多线程,另一种是使用现代操作系统提供的io多路复用系统调用:select,poll。
 
- 该模块基本的思路是:通过继承 
asyncore.dispatcher 或 asyncore.async_chat 并实现多个channel实例,然后将这些channel添加到全局的一个map中进行维护,一般是在loop函数中提供了该全局map。这个loop会等待所有handle处理完成才会退出关闭 
asyncore.dispatcher 作为channel的实现,使用者继承该类之后,通过override重写父类中的如下方法,可以实现自定义读写等操作
- handle_read
 
- handle_write
 
- handle_connect
 
- handle_close
 
- handle_accept
 
 
- 此外 
asyncore.dispatcher 作为socket对象的代理,也提供了一些与原生socket一致的接口,他们的参数很多与原生socket是一致的
- create_socket
 
- connect
 
- send
 
- recv
 
- listen
 
- bind
 
- accept
 
- close
 
 
 asyncio