• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python网络编程之TCP通信实例和socketserver框架使用例子

python网络编程之TCP通信实例和socketserver框架使用例子

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python socketserver,python3 socketserver,socketserver,java socketserver,borlandsocketserver等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程:



2.python可以实现TCP服务器和客户端的编程,下面是代码:

服务器端:

</div>

客户端:

</div>

3.使用socketserver框架编写TCP服务器

    Socketserver模块可以简化网络服务器的编写,它包含了四种服务器类,TCPServer使用TCP协议,UDPServer使用UDP协议,还有两个不常使用的,即UnixStreamServer和UnixDatagramServer,这两个类仅仅在unix环境下有用。

    使用服务器编程,需要进行一下步骤,先建立一个请求句柄类,这个类继承自BaseRequestHandler类,建立这个类后重写它的handle方法,然后实例化服务器类,把主机名,端口号和句柄类传给它,然后调用server_forever()方法来处理请求。

   使用socketserver框架的服务器:

</div>

上面的socketserver服务器只能处理一个请求,如果要处理多个请求,可以用forking或者threading实现,实现多进程或者多线程服务器。下面是使用forking和threading的服务器代码:

使用forking的服务器:

</div>

使用多线程的服务器:

class Handler(StreamRequestHandler):
 def handle(self):
  addr=self.request.getpeername()
  print "got connection from",addr
  self.wfile.write("connected")

server=Server(('',10000),Handler)
server.serve_forever()
</div>

</div>

您可能想查找下面的文章:

  • Python与Java间Socket通信实例代码
  • 利用Python中SocketServer 实现客户端与服务器间非阻塞通信
  • Python使用SocketServer模块编写基本服务器程序的教程
  • 实例讲解Python中SocketServer模块处理网络请求的用法
  • 结合Python的SimpleHTTPServer源码来解析socket通信
  • Python中基础的socket编程实战攻略
  • python实现简单socket通信的方法
  • Python内置的HTTP协议服务器SimpleHTTPServer使用指南
  • Python的Socket编程过程中实现UDP端口复用的实例分享
  • python使用socket远程连接错误处理方法

相关文章

  • python正则表达式判断字符串是否是全部小写示例
  • Python命名空间详解
  • python获取远程图片大小和尺寸的方法
  • Python获取系统默认字符编码的方法
  • windows系统中python使用rar命令压缩多个文件夹示例
  • 跟老齐学Python之使用Python操作数据库(1)
  • Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
  • 编写Python脚本来获取mp3文件tag信息的教程
  • 详细解读Python的web.py框架下的application.py模块
  • Python调用ctypes使用C函数printf的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python处理json数据中的中文
    • python生成器表达式和列表解析
    • Python开发实例分享bt种子爬虫程序和种子解析
    • 使用Python绘制图表大全总结
    • Python字符串详细介绍
    • Python def函数的定义、使用及参数传递实现代码
    • Python实现Tab自动补全和历史命令管理的方法
    • python getopt 参数处理小示例
    • python脚本内运行linux命令的方法
    • Python实现一个简单的MySQL类

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有