1、引言
客户端/服务器架构
(1)硬件的CS架构:打印机服务器、文件服务器
(2)软件的CS架构:Web服务器、数据库服务器、窗口服务器
(3)CS网络编程:创建通讯端点,用于“监听”请求
2、套接字:通信端点
(1)套接字地址:主机+端口
(2)面向连接与无连接
面向连接的套接字(虚电路/流套接字)/无连接套接字
面向连接:顺序的、可靠的、不会重复的数据传输,且不会被加上数据边界。传输控制协议(TCP)、网际协议(IP)
无连接:数据到达顺序、可靠性及不重复性无法保证。数据报会保留数据边界,数据是整个发送,不像面向连接的协议那样先拆分再组合,性能优。用户数据报协议(UDP)、网际协议(IP)
3、Python中的网络编程
socket模块,其中socket()函数用来创建套接字。套接字有自己的一套函数来提供基于套接字的网络通信。
(1)socket()函数
socket(socket_family,socket_type,protocol=0)
- socket_family:不是AF_VNIX,就是AF_INET。
- socket_type:SOCK_STREAM或者SOCK_DGRAM(流套接字/数据报)
- protocol:一般不用,默认用0。
tcpsock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
udpsock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
(2)套接字对象(内建)方法
(3)创建一个TCP服务器/创建TCP客户端
(4)创建一个UDP服务器/创建UDP客户端
4、SocketServer模块
包含一些类,用于简化实现网络客户端和服务器所需的大量样板代码。
同步服务器/异步服务器 事件驱动
创建一个SocketServerTCP服务器/客户端
5、Twisted框架
一个完全事件驱动的网络框架。允许开发完全异步的网络应用程序和协议。它为你创建一个完整系统提供了很大帮助。系统中可以有:网络协议、线程、、安全和认证、聊天和即时通讯、数据库管理、关系数据库集成、Web/Internet、电子邮件、命令行参数、图形界面集成等。
创建一个Twisted Reactor TCP服务器/客户端