网络编程

网络编程基础

同一台机器上的两个程序直接的通讯,需要依靠文件

两台机器之间的两个程序直接的通讯,就需要依靠网络

网卡 :计算机在网络上的身份证

mac地址:每台计算机在出厂的时候都要一个全球唯一的mac地址,16进制数

交换机,负责一个网络内的多台机器的直接信息交换

ip地址  

ipv4  4位点分十进制

ipv6

127.0.0.1   本地回环地址

0.0.0.0

mac是永久的,ip是临时地址

arp协议      获得mac地址,包含广播和单播

  一台机器发送一个包含IP地址的arp请求给交换机,交换机广播这条消息,发给所有的地址,当某个ip地址和这个吻合,就会以单播的形式带着自己的

  mac地址回应交换机的广播

网关ip    不同局域网之间的通信,依赖的ip地址

子网掩码    判断两个ip是不是在一个网段

局域网

内网ip    外部不能访问 ,只有内部环境可以相互访问

外网ip   谁都可以访问

外网ip永远不会和内网ip冲突

0.0.0.0------255.255.255.255中间为内网保留了一些字段

192.168.0.0---------192.168.255.255

172.16.0.0---------172.31.255.255

端口

每一个网络服务会占用计算机的一个端口

计算机上的端口范围0---65535

ip可以找到机器,端口可以找到应用

osi 七层模型

应用层      http,https      

传输层      tcp,udp      四层交换机,四层路由器

网络层      ip(ipv4,ipv6)    路由器,三层交换机

数据链路层    arp        网桥,以太网交换机,网卡

物理层                中继器,集线器,双绞线

 

tcp协议   面向连接,可靠,全双工,三次握手四次挥手

udp协议  无连接,快,不可靠,能够发送的消息的长度是有限的

网络开发的框架

c\s

b\s

b\s   架构也是一种c\s架构

粘包

粘包只会发生在tcp协议,是由于信息直接没有边界

udp不会发生粘包的现象,不建议发送过长的数据,会增加数据丢失的几率

合包现象

  1,数据很短

  2,时间间隔短

拆包现象

  大的数据发送过程中会发生拆分,没发完的信息会跟下次的信息粘在一起

解决方法,在要发的文件前面加文件的大小,先读取文件的大小

struct模块

能够把不管多长的数据,都转化成一个4位bytes类型

pack,unpack

 

posted @ 2018-09-15 16:55  若兮ruoxi  阅读(88)  评论(0编辑  收藏  举报