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() 

     
  • 相关阅读:
    POJ 1269 Intersecting Lines --计算几何
    URAL 2014 Zhenya moves from parents --线段树
    HDU 4122 Alice's mooncake shop --RMQ
    HDU 4121 Xiangqi --模拟
    HDU 4045 Machine scheduling --第二类Strling数
    HDU 4041 Eliminate Witches! --模拟
    HDU 5105 Math Problem --数学,求导
    2014-2015 Codeforces Trainings Season 2 Episode 7 G Gophers --线段树
    HDU 4419 Colourful Rectangle --离散化+线段树扫描线
    HDU 5102 The K-th Distance
  • 原文地址:https://www.cnblogs.com/kcwxx/p/9506752.html
Copyright © 2011-2022 走看看