网络编程
计算机网路把各个计算机链接到一起,让网路中的计算机可以与互相通信,网路编程在程序中实现了两台计算机的通信。
网络编程对所有的开发语言都是一样的,python也不例外,用python进行忘络编程就是在python程序的进程内链接别的服务器进程的通信端口进行通信。
TCP 和 IP
早期各个厂家都有自己一套的协议,互不兼容,就好比一个说英语一个说汉语,只懂一门语言,没发交流。
为了解决这个问题所以有了一套全球通用的协议,共同制定了网络协议族,在上百的协议中,其中最重要的是TCP和IP协议。
IP 地址是什么,通信时双方必须知道对方的标识,互联网的唯一标识就是IP地址,入192.168.13.21 如果一台计算机同时接入多个网络(路由器)就会有多个IP,所以说IP是对应网络计算机的网络接口,通常说的网卡。
IP协议是负责把数据从一台计算机通过网络发送到另一台计算机,把数据分割成一小块一小块,然后同过IP包发送出去,ip包它是通过过路由器发送出去,由于网络的复杂性,ip包的特点按块发送,途径多个路由不能够保证送达,和按顺序送达。
IP 地址分为两类,一个是 IPv4 是8位数组合后表示的如 192.168.0.1 目的是便于阅读
一个是IPv6是ipv4的升级版,是以字符串表示类似于MAC地址。
TCP协议建立在IP协议之上,TCP协议负责在两台计算机之间建立可靠连接,保证数据按包按顺序达到。TCP协议会通过握手建立连接,然后对每个IP包编号,保证对方按顺序接到,如果丢包者会重新发送。
大家知道HTPP协议和发邮件的SMTP(它们属于高级协议) 他们都是建立在TCP协议基础之上的,
IP包里面有什么呢,包含了要传输的数据外,还包含源IP地址和目标IP地址,源端口号和目标端口号 ——》那端口号有什么作用呢,
两台计算机连接只发IP是不够的,一台计算机可能运行着多个网络程序,一个IP包来了以后是发给浏览器还是微信呢?需要端口号来区分,没一个网络程序都向操作系统申请一个唯一的端口号,这样两个进程在就计算机之间建立网络连接就需要各自的IP地址和端口号,
注。一个进程也可能同时与多个计算机建立连接,因此它会申请很多端口。
总结:
网络编程就是实现计算机的相互通信,