python核心编程---读书笔记:第16章 网络编程

来源:互联网 发布:关于人工智能的演讲 编辑:程序博客网 时间:2024/06/06 21:40

第16章网络编程

 

套接字:用于进程间通讯,或IPC

种类:基于文件的和基于网络的

地址家族:AF,AddressFamily

 

两个进程都运行在同一台机器,且套接字是基于文件的

基于网络的套接字:AF_INET,Internet,最广泛使用

AF_INET6

 

套接字地址:主机与端口

面向连接的套接字:提供顺序,可靠,非重复数据传输,TCP

创建TCP他姐自,指定套接字类型:SOCK_STREAM,是刘套接字

 

 

无连接套接字:UDP,不能呢个保证可靠和非重复性,性能更好

套接字类型为SOCK_DGRAM,数据报

 

16.3.1创建套接字:

socket(socket_family , socket_type ,protocol=0)

socket_family: AF_INET,AF_UNIX

socket_type: SOCK_STREAM , SOCKDGRAM

protocol:默认为0

tcpSock = socket.socket(socket.AF_INET ,socket.SOCK_STREAM)

 

服务端套接字函数

s.bind():绑定地址(主机,端口号对)到套接字

s.listen():开始TCP监听

s.accept():被动接受客户端连接

 

客户端套接字函数

s.connect() 连接TCP服务器

s.connect_ex():返回错误吗

s.recv():接受TCP数据

s.send():发送TCP数据

 

s.sendall() 完整发送TCP数据
s.recvfrom()接受UDP数据

s.sendto():发送UDP数据

s.closs():关闭套接字

 

服务端需要绑定到本地地址,创建线程来处理客户请求

SocketServer

需要把服务器的无限循环放在try-except语句总,捕获异常,

调用close()关闭服务器套接字

 

 

16.3.6创建一个UDP服务器

直接等待进来的连接就好

UDP服务器

ss = socket()

ss.bind()

while True:

         cs= ss.recvfrom()

         ss.sendto()

         ss.close()

 

UDP客户端:

 

cs = socket()

while True:

         cs.sendto()

         cs.recvfrom()

         cs.close()

 

 

16.4 *SocketServer模块

重要,含有这方面处理

BaseServer

TCPServer , UDPServer: 基于网络同步的TCp/UDP服务器

 

16.5

Twisted框架介绍

Twisted:事件驱动的网络框架

 

 

select 模块在底层套接字程序中与socket模块联合使用,可同时管理多个套接字对象

select模块作用:同时监听多个套接字的连接

SocketServer:提供创建服务器的系统

async*:异步开发支持库

0 0