【Python】网络编程

计算机网络的介绍

计算机的发展经历了以下几个阶段:

阶段时间物理器件
第一阶段1946年到20世纪50年代后期电子管
第二阶段20世纪50年代后期到20世纪60年代中期晶体管
第三阶段20世纪60年代中期到20世纪70年代初期中小规模集成电路
第四阶段20世纪70年代初期至今大规模集成电路

1.通信协议

计算机为了联网,就必须规定通信协议,早期的计算机都是由各厂商自己规定的一套协议,互不兼容。

为了把全世界的各种类型的计算机连接起来,就必须规定一套全球通用的协议,为了实现这个目标,互联网协议簇就是通用协议 标准出现了。

网络协议

网络体系结构协议主要用途
TCP/IPIP,ICMP,TCP,UDP,HTTP,TELNET互联网、局域网
IPX/SPXIPX,SPX,NPC...个人电脑局域网
AppleTalkDDP,RTMP,AEP,ZIP0.....苹果公司现有产品的局域网
DEcentDPR,NSP,SCP....前DEC小型机
OSIFTAM,MOTIS,VT,CMIS/CMIP
XNSIDP,SPP,PEP施乐公司网络

2.TCP协议

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

TCP协议是一种可靠的、面向连接的、基于全双工通信和字节流的传输层协议通信。使用TCP的应用有Web浏览器、电子邮件和文件传输程序等。

为了提供可靠的通信服务,TCP通过三次分节建立连接、四次分节关闭连接。

3.IP地址

①IP地址介绍

在通信时,通信双方必须知道对方的标识,好比送快递必须知道对方的地址。互联网上的每个计算机唯一标识就是IP地址。IP地址实际上是一个32位整数以字符串表示的IP地址,把32位整数按8位分组后的数字表示,便于阅读。

②IP地址的作用

IP地址的作用是标识网络中唯一一台设备,也就是说通过IP地址能够找到网络中的某台设备。

4.子网掩码

①子网掩码的介绍

子网掩码又叫做网络掩码、地址掩码,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机位的掩码。

子网掩码不能单独存在着,它必须和IP地址一起使用。子网掩码就只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位整数,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

②子网掩码的表示方法

(1)点分十进制表示法

二进制转换成十进制,每8位用点号分隔开。

(2)CIDR斜线记法

格式:IP地址/n

③子网掩码的分类

(1)缺省子网掩码:也叫做默认的子网掩码,即未划分子网,对应的网络号的位置都为1,主机号都为0

未作子网划分的IP地址格式:网络号+主机号

A类缺省子网掩码:255.0.0.0 CIDR表示为/8

B类缺省子网掩码:255.255.0.0 CIDR表示为/16

C类缺省子网掩码:255.255.255.0 CIDR表示为/24

(2)自定义子网掩码:将一个网络划分为子网后,把原本的主机号的位置的一部分给了子网号,剩余的才是给了子网的主机号。形式如下:

网络号+子网号+子网主机号

例如:192.168.1.100/25,子网掩码表示为 255.255.255.128

④子网掩码和IP地址的关系

子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码进行运算,如果在同一网络就可以直接通信。

5.域名

①域名介绍

因为直接记忆IP地址非常困难,所以我们通常使用域名访问某个特定的服务。域名解析服务器DNS负责把域名翻译成对应的IP地址,客户端再根据IP地址访问服务器。

②用域名取得主机的IP地址

域名是为了便于记忆,用来代替IP地址访问网络的方法。在使用域名访问网络的时候,需要将这个域名转换成相应的IP地址,用域名返回地址的函数是gethostbyname。函数的使用方法如下:

sruct hostent *gethostbyname(const char *name)

6.Socket

①介绍

在网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的其中一端称为一个Socket(套字节),用于描述IP地址和端口。

建立网络通信连接至少要一对端口号,Socket的本质是编程接口(API),对TCP/IP的封装,提供了网络通信能力。

每种服务都打开一个Socket,并且绑定到端口上面,不同的端口对应不同的服务,例如HTTP对应80端口。

②socket()函数

Python中,我们采用socket()函数来创建套字节,其语法格式如下:

socket.socket([family[,type[,proto]]])

7.UDP协议

相对于TCP协议,UDP协议是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发送数据包。但是,无法保证数据包一定被送达。虽然UDP传输数据不可靠,但是它的优势是比TCP协议速度快。对于不要求可靠到达的数据,就可以用UDP协议。

8.Python第三方库

python第三方库是采用额外的安装方式来提供更广泛的Python计算生态,由不同行业的开发者进行维护。第三方库的领域有数据分析、文本处理、机器学习、游戏开发等等。

①requests库

requests库是一个建立在Python语言的urlib3库基础上,简洁而简单的处理HTTP请求的第三方库,其最大的优点是程序编写过程更加接近URL访问过程。requests库支持非常丰富的连接访问功能,包括国际域名和URL获取、HTTP长连接和自动解压缩、自动解码等。

②pandas库

numpy是Python的一种开源数值计算扩展第三方库,用于处理数据库类型相同的多维数组。而pandas是基于numpy扩展的一个重要第三方库,用来解决数据分析任务而创建的,为时间序列分析提供了很好的支持。pandas提供一维数组类型Series和二维数组类型DataFrame。更多介绍请访问:http://pandas.pydata.org/。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值