Python Socket TCP网络编程

2017年4月14日14:05:16 发表评论 9,439

Python Socket TCP网络编程

Python Socket 在网络通讯方面的能力是非常强大的,并且代码量也是非常少的,学起来也是非常的容易,Python Socket在连接方面有TCP和UDP两种,本文主要介绍使用 Python 进行TCP Socket 网络编程,在这之前,你需要具备Python语法基础,具体教程可以网上搜一下,并不是很难。

小试牛刀

客户端编程

看上面的代码中 在配置连接方式的时候参数1使用了AF_INET,这个参数代表 Internet 进程间通信,如果改为AF_UNIX则用于同一台机器进程间通信,SOCK_STREAM是套接字类型,可以是 SOCKET_STREAM(流式套接字,主要用于 TCP 协议)或者SOCKET_DGRAM(数据报套接字,主要用于 UDP 协议)。

在连接和关闭连接的地方都需要抛出异常,防止连接失败程序崩溃。

服务端编程

上面说的都是简单的连接,不过这种连接时单线程的,每次只可以连接一个客户端,若有第二个客户端进行请求连接时必须等待上一次此连接的断开,有时候这种方式不适用,所以有了下面的多线程的连接方式。

小有成就

若想多个客户端就行连接,关键的地方在于服务端,对服务端进行多线程的编程即可,在python中有个包叫:SocketServer,直接写个类继承它里面的BaseRequestHandler类,然后实现handle方法即可,下面看代码:

这种多线程的socket每次有客户端请求都会调用一次handle方法,所以,只要将处理数据的代码写在handel中调用即可。相对单客户端的编程来说这种方式的代码反而简单一些,

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: