Python程序设计教程第12章-网络编程.pptx
第12章-网络编程
本章目标了解网络编程的基本概念了解七层协议与四层协议掌握TCP/IP协议掌握UDP协议掌握Socket套接字熟练应用TCP编程熟练应用UDP编程
网络编程与通信协议什么是通信协议?协议即规则,就好比汽车上路要遵守交通规则一样,为了使全世界不同类型的计算机都可以连接起来,所以制定了一套全球通用的通信协议—Internet协议。有了Internet协议,任何私有网络,只要支持这个协议,就可以接入互联网。
网络编程与通信协议
TCP/IP协议IPIP协议是整个TCP/IP协议族的核心IP地址就是互联网上计算机的唯一标识目前的IP地址有两种表示方式,即IPv4和IPv6在命令行下使用ipconfig命令可以查看本机的IP地址
TCP/IP协议TCPTCP(TransmissionControlProtocol)协议即传输控制协议,是建立在IP协议基础之上的。TCP协议负责两台计算机之间建立可靠连接,保证数据包按顺序发送到。它是一种可靠的、一对一的、面向有连接的通信协议。
TCP/IP协议TCP/IP协议中的四个层次
TCP/IP协议TCP/IP协议数据发送和数据接收
TCP协议TCP协议的三次握手
UDP协议UDPUDP协议又被称为用户数据包协议(UserDatagramProtocol),它是面向无连接的协议,只要知道对方的IP地址和端口,就可以直接发送数据包,由于是面向无连接的,所以无法保证数据一定会到达接收方。
端口号什么是端口号呢?区分计算机中的运行的应用程序的整数端口号的取值范围是0到65535,一共65536个,其中80这个端口号分配给了HTTP服务,21这个端口号分配给了FTP服务。
TCP协议与UDP协议的区别TCP协议UDP协议连接方面面向连接的面向无连接安全方面传输消息可靠、不丢失、按顺序到达无法保证不丢包传输效率方面传输效率相对较低传输效率高连接对象数量方面只能是点对点、一对一支持一对一、一对多、多对多的交互通信
Socket简介Socket通信模拟图
Socket对象的常用方法方法名称功能描述bind((ip,port))绑定IP地址和端口listen(N)开始TCP监听,N表示操作系统挂起的最大连接数量,取值范围1-5之间,一般设置为5accept()被动接收TCP客户端连接,阻塞式connect((ip,port))主动初始化TCP服务器连接recv(size)接收TCP数据,返回值为字符串类型,size表示要接收的最大数据量
Socket对象的常用方法方法名称功能描述send(str)发送TCP数据,返回值是要发送的字节数量sendall(str)完整发送TCP数据,将str中的数据发送到连接的套接字,返回之前尝试发送所有数据,如果成功为None,失败抛出异常recvfrom()接收UDP数据,返回值为一个元组(data,address),data表示接收的数据,address表示发送数据的套接字地址sendto(data,(ip,port))发送UDP数据,返回值是发送的字节数close()关闭套接字
TCP编程TCP服务器端流程如下:使用socket类创建一个套接字对象使用bind((ip,port))方法绑定IP地址和端口号使用listen()方法开始TCP监听使用accept()方法等待客户端的连接使用recv()/send()方法接收/发送数据使用close()关闭套接字
TCP编程TCP客户端的流程如下:使用socket类创建一个套接字对象使用connect((host,port))设置连接的主机IP和主机设置的端口号使用recv()/send()方法接收/发送数据使用close()关闭套接字
TCP编程
UDP编程
本章总结网络编程:在程序中实现网络计算机之间的数据通信通信协议:接入网络所要遵守的“规则”,目前全球通用的通信协议即Internet协议TCP/IP协议:中译为“传输控制协议”/“因特网互联协议”TCP/IP协议所对应的四层从下到上分别为:网络接口层、网际层、传输层、应用层传输层的协议有:TCP协议、UDP协议TCP协议:面向连接的,可靠的、不丢失的、按顺序到达,但传输效率相对较低,只能实现点对点,一对一的数据传输UDP协议:面向无连接,无法保证不丢包,但传输效率高,可以实现一对一、一对多,多对多的交互通信Python中的内置模块socket支持TCP与UDP的编程
本章总结TCP编程服务器端操作流程使用socket类创建一个套接字使用bind((ip,port))方法绑定IP地址和端口号使用listen()方法开始TCP监听使用accept()方法等待客户端的连接使用recv()/send()方法接收/发送数据使用close()关闭套接字TCP编程