zoukankan      html  css  js  c++  java
  • 网络基础相关知识内容

    day29

    1.网络基础相关的知识

      1.1 架构

        1.1.1  C/S 架构   服务器/客户端

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

        1.1.2  B/S 架构  服务器/浏览器 (隶属于C/S架构)

          优势: 统一了应用的接口 

      1.2 通信的事

        1.2.1  同一台计算机上两个py 程序通信,打开一个文件

        1.2.2  两个电脑通信,连接一根网线

        1.2.3  多态电脑通信

          eg: 电脑1 想要找到电脑2通信.

          通信过程: 电脑1发送一个请求帧(包含目标主机的ip地址,还有本主机的ip地址和物理mac地址)给交换机,交换机会广播(吼一嗓子),当主机2收到交换机的广播后,知道有主机要寻找主机2,主机2会给交换机一个回应,此时交换机就会告诉主机1,主机2找到了,此时主机1和主机2就可以互相通信了.

    2.知识点

      2.1  mac地址:是一个物理地址,全球唯一的,是由网卡制造商分配的,类似于人的身份证

      2.2  IP地址:是一个四位点分十进制,它表示了计算机在网络中的位置,类似于学生在学校的学号.

      2.3  交换机的通信方式:

        广播:  反射状信息(吼一嗓子)

        单播: 一对一通信

        组播: 一个和多个通信

      2.4 arp协议 : 通过目标IP地址来获取mac地址的一个协议

      2.5  端口:操作系统为本机上的每一个运行的程序随机分配的一个端口(程序级别的端口),其他电脑上的程序可以通过端口获取到这个程序(类似于文件句柄),IP地址+端口 能够找到某一台电脑上的某一个服务程序

      2.6  路由器:链接不同网段,路由选路

      2.7  网关: 一个网段的出口和入口

      2.8  网段: 一个局域网内的IP地址范围

      2.9  子网掩码: 子网掩码和IP地址&可以得到网段

      2.10  osi五层结构

        引用层                       http/htpps/ftp 

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

        网络层      IP协议        路由器/三层交换机

        数据链路层    ARP协议       以太网交换机/网卡/网桥

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

    3.socket 模块(套接字)

      socket又叫做套接字,有很多种类型

      3.1  AF_UNIX基于文件类型的套接字,unix的中心思想就是: 一切皆文件

      3.2  AF_INET基于网络类型的套接字

        type:一种是基于TCP协议   SOCK_STREAM

          一种是基于UDP协议   SOCK_SYREM

        TCP协议:可靠的,面向连接的,面向字节流形式的传输方式

        UDP协议:不可靠的,面向无连接,面向数据包传输.传输速度相对要快

    4.client和service代码

    server服务端:

    import socket

    sk = socket.socket()...............................括号里不用传参数,默认是基于网络型的套接字,协议:TPC(好比买了一部手机)

    sk.bind(("192.168.12.37",8008)).....................买一张手机卡(里边以元组的形式包括IP地址,端口,的端口的范围是:0-65535,但是0-1023i操作系统用的,不要用,所以的端口的数字在范围内可以随便给)

    sk.listen()...........不用传参数,表示同时能接收的连接(相当于开机)

    conn,addr = sk.accept().............................等待接收客户端的连接,是一种阻塞等待(相当于等待开机)

    while 1:

      mas_c = conn.resv(1024)...................建立起联系然后接收客户端发送的消息(conn里边包括客户端的消息)括号里必须给一个参数是字节数的倍数这个数尽量大一点,保证一次都接收完

      print("mas_c".decode("utf-8"),addr)

      massage = input(">>>")

      conn.send(massage.encode("utf-8"))

    conn.close()

    sk.close()

    client客户端

    import socket

    sk = socket.socket().....................................建立通信的条件

    sk.connect(("192.168.12.37",8008))...........................和要通信的主机连接

    while 1:

      mass = input(">>>")

      sk.send(mass.encode("utf-8"))

      mas_c = sk.resv(1024)

      print(mas_c.decode("utf-8"))

    sk.close() 

     
  • 相关阅读:
    基础总结深入:数据类型的分类和判断(数据、内存、变量) 对象 函数 回调函数 IIFE 函数中的this 分号
    BOM 定时器 通过修改元素的类来改变css JSON
    事件 事件的冒泡 事件的委派 事件的绑定 事件的传播
    DOM修改 使用DOM操作CSS
    包装类 Date Math 字符串的相关的方法 正则表达式 DOM DOM查询
    数组 call()、apply()、bind()的使用 this arguments
    autocad 二次开发 最小包围圆算法
    win10 objectarx向导在 vs2015中不起作用的解决办法
    AutoCad 二次开发 jig操作之标注跟随线移动
    AutoCad 二次开发 文字镜像
  • 原文地址:https://www.cnblogs.com/kcwxx/p/9506752.html
Copyright © 2011-2022 走看看