Python运维基础(8)python网络编程

本文介绍了Python网络编程的基础知识,包括TCP/IP协议的原理和Python中的网络编程实现。阐述了TCP/IP协议簇中的IP和TCP协议的作用,以及端口在通信中的重要性。接着详细讲解了Python中的socket接口,以及不同类型的socket类型。最后,通过实例展示了TCP和UDP编程的基本步骤和注意事项。
摘要由CSDN通过智能技术生成

网络编程

计算机网络就是将各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信,网络通信是两台计算机上的两个进程之间的通信。
用Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信。

TCP/IP简介

要想实现交流,首先得要有一套各自都能理解的语言,同理,要想实现网络通信,就必须得规定通信协议。在早起的计算机网络中,由各厂商自己规定一套协议,只能用于自己,互不兼容。为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议——互联网协议簇(Internet Protocol Suite)即通用协议标准。

互联网协议包含了上百种协议,其中最为重要的就是TCP协议和IP协议,简称TCP/IP协议。

互联网上每个计算机的唯一标识就是IP地址,IP地址对应的实际上是计算机的网络接口,通常是网卡。

IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块,然后通过IP包发送出去。由于互联网链路复杂,两台计算机之间经常有多条线路,因此,路由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途经多个路由,但不保证能到达,也不保证顺序到达。
TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。

许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。

一个IP包除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口和目标端口。

端口有什么作用?
在两台计算机通信时,只发IP地址是不够的,因为同一台计算机上跑着多个网络程序。一个IP包来了之后,到底是交给浏览器还是QQ,就需要端口号来区分。每个网络程序都向操作系统申请唯一的端口号,这样,两个进程在两台计算机之间建立网络连接就需要各自的IP地址和各自的端口号。
一个进程也可能同时与多个计算机建立链接,因此它会申请很多端口。

python网络编程

Python 提供了两个级别访问的网络服务:
1.低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。
2.高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

socket介绍

所谓socket,通常也称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字“向网络发出请求或者应答网络请求。
说白了socket就是一种通信机制。它类似于移动啊电信啊的电话客服,当你拨打10086选择人工服务,那边会配置一个人来回答你的问题,此时,客服部门就相当于socket的服务器端,你这边就相当于客户端,在和你通话期间,如果有人也想找那个客服通话,这是不可能的,因为你正在和该客服通信。
socket起源于Unix,而Unix/Linux的基本哲学就是“一切皆文件”,都可以用“打开-读写-关闭”模式来进行操作。本质上,socket就是对该模式的一个实现,socket是一种特殊的文件,一些socket函数实际上就是对其进行的操作(打开,读写,关闭)。

socket type

socket.AF_UNIX 只能用于单一的Unix系统进程间通信,无法进行网络通信
socket.AF_INET 服务器之间的网络通信
socket.AF_INET6 IPv6

socket.SOCK_STREAM 流式socket,for TCP(相对可靠的链接)
socket.SOCK_DGRAM 数据报式socket,for UDP(不可靠,不管收到没收到,都把信息往出发)
socket.SOCK_RAW 原始套接字,普通的套接字无法处理ICMP,IGMP等网络报文,而socket.SOCK_RAW可以;其次SOCK_RAW也可以处理特殊的IPv4报文,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头(篡改IP头)。通常仅限于高级用户或管理员运行的程序使用。
socket.SOCK_RDM 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RDM用来提供对原始协议的低级访问。
…..

socket函数

这里写图片描述
如遇到其他,查

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值