网络基础相关知识内容

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

 
 

  

 

posted @ 2018-08-10 17:20  Anna_kc  阅读(266)  评论(0)    收藏  举报