博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络基础相关知识内容
阅读量:6070 次
发布时间:2019-06-20

本文共 2180 字,大约阅读时间需要 7 分钟。

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

 
 

  

 

转载于:https://www.cnblogs.com/kcwxx/p/9506752.html

你可能感兴趣的文章
iOS开发流程总结
查看>>
hadoop datanode 启动出错
查看>>
js颜色拾取器
查看>>
IDEA使用(1)intellIJ idea 配置 svn
查看>>
Thread Safety in Java(java中的线程安全)
查看>>
WPF 降低.net framework到4.0
查看>>
数据管理DMS 全量SQL诊断:你的SQL是健康的蓝色,还是危险的红色?
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
IdleHandler,页面启动优化神器
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>