一、网络编程概述
1.什么是计算机网络?
指分布在不同地域的计算机,通过外部设备连接起来,实现了资源共享(数据和设备的共享),实现数据传输的计算机系统。外部设备有:计算机、路由器、交换机等等。
2.什么是网络编程?
网络编程关注的是数据的传输,主要处理计算机与计算机之间的数据通信问题。
3.计算机网络的三要素:
IP地址、端口号、协议。一台计算机想要与另一台计算机进行数据的交换,需要三样东西:IP地址、端口号和协议。通过IP地址找具体的计算机,然后通过端口号找某个软件的专属通道,数据传输的格式按照一定的协议。
4.网络模型
七层协议:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
四层协议:应用层、传输层、网络层、网络接口层
5.TCP与UDP
UDP 和 TCP 协议都是传输层的协议。
1.UDP协议的特点:
概念:User Datagram Protocol 用户数据报协议,以包的方式在网上传送数据,每个包都有传送和接受地址的讯息。
不需创建连接,发送的数据限制大小、传输速度快
(1)客户端
#UDP协议socket对象,AF_INET用于网络进程间的通讯,AF_UNIX用于同一台机器进程间通讯,
#SOCK_DGRAM流式嵌套字用于UDP协议
import socket
client_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 客户端
host=socket.gethostname()#获取主机ip
po