美文网首页
【第41天】python全栈从入门到放弃

【第41天】python全栈从入门到放弃

作者: 36140820cbfd | 来源:发表于2019-09-28 20:46 被阅读0次

    1.网络开发2个架构

    C / S架构: client客户端和server服务器端

    优势: 能充分发挥PC机的性能

    B / S架构: browser浏览器和server服务器隶属于C/S架构

    B / S架构统一了应用的接口.

    2.计算机之间的通信

    同一台电脑上两个py程序通信 : 打开一个文件

    两个电脑如何通信:连一个网线

    通信的事:

    多个电脑通信 : (电脑1(源)要找电脑2(目标))

    电脑1首先发送一个请求帧,其中包含(我的ip是192.168.1.1,我的mac地址是xxxxxxxx,我要找ip地址为192.168.1.2的主机),将此请求发送给交换机.

    交换机要广播这条消息给其他所有的主机

    目标主机接收到消息后,对比发现自己就是被找的主机,回复给交换机信息(我的ip地址是192.168.1.2,我的mac地址是yyyyyyyyy,请回复给ip地址为192.168.1.1,mac地址为xxxxxxx的主机),交换机单播形式返回给源主机

    3 一些知识

    1 mac地址(网卡硬件厂商给的) :是一个物理地址,全球唯一, 类似于身份证

    2 ip地址: 是一个四位点分十进制,它标识了计算机在网络中的位置.类似于学号

    知道mac地址不一定知道这台电脑在哪里,在哪个位置,ip地址可以知道计算机在哪里

    3 交换机的通信方式:

         广播: 吼一嗓子
    
         单播: 一对一
    
         组播: 一对多
    

    4 arp协议 : 通过目标ip地址获取目标mac地址的一个协议.

    5 端口 : 操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序, ip地址+ 端口能唯一找到某台电脑上的某一个服务程序

    (0-65535 0-1023尽量不要用)

    6路由器 : 连接不同网段 ,路由

    7 网关: 类似于一个局域网的出口和入口

    8 网段 : 一个局域网内的ip地址范围

    9 子网掩码 : 子网掩码 &ip地址得到网段

    10 osi 五层模型:

    应用层 : http,https,ftp

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

    网络层 : ip协议路由器三层交换机

    数据链路层 : arp协议以太网交换机网卡网桥

    物理层 : 传输电信号集线器网线光纤

    4 . socket

    sk = socket.socket(family = AF_INET, type=SOCK_STREAM)

    family :(有两种参数)
    
    一种: AF_UNIX基于文件类型的套接字(早期socket是源自于unix系统而研发的一个功能,主要是为了同一台电脑上,多个程序直接通信)  unix系统的中心思想是 :一切皆文件
    
    一种 : AF_INET基于网络类型的套接字
    
    type:
    
    一种是基于TCP协议   SOCK_STREAM, 可靠的,面向连接的,面向字节流形式的传输方式
    一种是基于UDP协议   SOCK_DGRAM,  不可靠的,不面向连接的,面向数据报的传输方式,但是它快
    

    5使用tcp协议客户端和服务端的一次连接

    tcp连接

    客户端代码如下:

    代码块
    # 第二次 通信
    
    import socket
    
    sk = socket.socket()
    
    sk.connect(('192.168.1.29',18080))# 连接
    
    sk.send('中文'.encode('utf-8'))    #发送信息
    
    sk.close()    #关闭
    

    服务端代码如下:

    代码块
    import socket
    
    sk = socket.socket()# 我买一个新手机
    
    sk.bind(('192.168.1.29',18080))#  我买一个手机卡
    
    sk.listen()# 开机
    
    conn,addr = sk.accept()# 等待朋友给我打电话
    
    print(conn,addr)
    
    msg= conn.recv(6)# 接受数据,接受10个字节
    
    print(msg.decode('utf-8'),addr)
    
    conn.close()# 挂断电话
    
    sk.close() # 关机
    

    6 交换机和路由器区别

    交换机的主要功能是组织局域网,经过交换机内部处理解析信息之后,将信息以点对点,点多对的形式,发送给固定端

    路由器的主要功能: 进行跨网段进行数据传输,路由选择最佳路径.

    EX:

    如果你需要将多台电脑连接到一根网线,用交换机即可

    如果你只有一个外网ip,但是你有好多台电脑需要上网,用路由器即可

    别跑,点个赞再走

    相关文章

      网友评论

          本文标题:【第41天】python全栈从入门到放弃

          本文链接:https://www.haomeiwen.com/subject/crcsyctx.html