热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络编程参考:《python开发技术详解》

服务端socket的listen方法可以接收一个参数来设置连接队列的长度若服务端的socket已经开始listen,可以通过telnetipport来连接此服务端TCPSe

服务端socket的listen方法可以接收一个参数来设置连接队列的长度

若服务端的socket已经开始listen,可以通过telnet ip port来连接此服务端

TCPServer生成的实例是同步通信机制,若想对接收到的每个连接都生成一个对应的子进程,需要ForkingMixin,如下:

 

SocketServer类框架还提供了使用线程处理多连接的接口---TreadingMixIn

 异步IO方式:I/O多路复用是在单线程模式下实现多线程的效果

可以通过select和poll实现,poll扩展性更好,但不能用在windows系统下

select对指定的文件描述符进行监控,在文件描述符集改变的时候做出响应

select有3个必须的参数和1个可选的时间参数,3个参数都为文件描述符,分别表示输入、输出和错误的文件描述符,空的列表也是可以的
时间参数是浮点数,表示监控描述符改变的超时时间,时间设为0则表示调用的时候不阻塞
返回值是一个有3个值的元组,元组中的3个值为入参中3个参数中已经准备好的文件描述符

文件描述符包括:sys.stdin、或open和popen方法得到的对象、或socket返回的socket对象

 

 

 

 

 

 使用asyncore模块同样可以实现异步通信方式

 

=====具体哪个重载的方法被调用是根据所继承的类来决定的。如继承TCPSever,则应重载StreamRequestHandler

 


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何尽量处理TIMEWAIT过多?
    如何尽量处理TIMEWAIT过多?编辑内核文件etcsysctl.conf,加入以下内容:net.ipv4.tcp_syncookies1表示开启SYNCookies。当出现SYN ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 在多线程环境中,IpcChannel的性能表现并未如预期般优于Tcp和Http通道。实际测试结果显示,在IIS6中通过Remoting创建的Ipc通道,其速度比Tcp通道慢了约20倍。本文详细分析了这一现象的原因,并提出了针对性的优化建议,以提升IpcChannel在高并发场景下的性能表现。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 公司有个系统,比较古老,web端使用的是applet,applet作为socketclient端。另一台服务器运行socketserver.当多次执行某一个特定事务时(通过Applet,该事务会触 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 针对HTTP协议在数据传输过程中的安全漏洞,HTTPS应运而生,通过加密传输通道来防止信息泄露和篡改。作为一种基于SSL/TLS协议的加密超文本传输协议,HTTPS不仅提升了数据的安全性,还广泛应用于各种敏感信息的传输场景,如网上银行、电子商务和在线支付等。 ... [详细]
  • ZeroMQ基础篇(套接字的创建zmq_socket、zmq_close、zmq_bind、zmq_unbind、zmq_connect等)
    0MQ(ZeroMQ)是一个轻量级消息内核。它可用于C、C++、Python、.NETMono、Fortran和Java语言。它运行在AIX,FreeBSD的,基于HP-UX,Li ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
author-avatar
晴兮心语6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有