zoukankan      html  css  js  c++  java
  • 网络编程

    网络编程

    1.软件开发架构:
    开发软件,必须要开发一套客户端与服务端

    客服端与服务端的作用
    服务端 24小时不断提供给服务
    客户端 如果要服务就去享受

    两种架构:
    C/S架构
    client:客户端
    server:服务端
    优点:稳定,可以节约网络资源
    缺点:若用户想在同一个设备上使用多个软件,必须下载多个客户端
    每次软件更新,客户端必须跟着下载更新
    C/S架构的软件有:
    电脑上的qq,移动端的wechat等等
    B/S
    browser:浏览器(客户端)
    server:服务器
    优点:
    以浏览器充当客户端,无需用户下载多个软件,也无需用户下载更新软件版本,可以直接在浏览器上访问需要使用的软件
    缺点:
    消耗网络资源过大,当网络不稳定时,软件的使用也会不稳定
    B/S架构的软件:
    例如:再浏览器上输入某个软件的域名

          我玩巫师3的时候到一个小镇会跑进每一个屋子搜刮每一个亮起来的袋子……顺便看看有没有告示板上没有的任务可以接……在要塞搜刮袋子的时候还被军队围了,那些卫兵前期等级有点高……
    

    2.后期学习
    网络编程,并发编程,数据库开发 可以开发一套cs架构的软件(仿youku系统)
    前端html css js web框架(网络编程,并发编程)

    3.网络编程
    网络编程发展历史
    所有先进的技术都来源于军事.希望通过远程获取数据,所以出现了网络编程
    早期如何实现远程通信:
    打电话-->电话线
    打屁股电脑-->网线,有线网卡
    笔记本电脑-->无线网卡
    要实现远程通信必须具备:
    物理连接介质-->网卡...
    互联网协议 发
    语言
    互联网协议

    4.互联网协议
    互联网协议有成为网络七层协议,OSI七层协议,OSI是个世界标准组织

    应用层
    表示层
    会话ceng
    传输层
    网络层
    数据链路层
    物理连接层
    
    
    需要优先了解
    应用层
    http
    ftp
    
    
    
    传输层
    tcp/udp协议,都是基于端口工作的
    端口号:标识电脑上某一个软件
    端口号的范围是0-65535
    注意
      操作系统中一般0-1024的端口都被默认使用了
      尽量使用8000后的端口号 8001
    
      mysql:3306
      mongodb:27017
      Django:8000
      Tomcat:8080
      Flask:5000
      Redis:6379
      若想要客户端与服务端进行通信,必须建立连接产生双向通道
      一条是客户端往服务端发送消息的
      另一条是服务端往客户端发送消息的
      三次握手,四次挥手(***********)
       三次握手建立连接
       四次挥手断连接
      发送数据
      write
      read
      客户端往服务端发送数据,数据存放在内存中,需要服务端确认收到,数据才会在内存中释放迪奥
      否则会隔一段时间发送一次让服务端返回确认收到
      再一段时间内若服务无端还是没有返回确认收到,则取消发送,并释放内存中的数据
    
    
    网络层
    IP地址:用于唯一识别计算机的地址
    IP 点分十进制
    最小值:0.0.0.0
    最大值:255.255.255.255
    
    IPV4:
    IPV6:
    127.0.0.1-->localhost
    数据链路层
       数据链路层的以太网协议专门处理基于电信号发送二进制数据
        以太网协议:
            规定好电信号数据的分组方式
            每一台连接网络的电脑都必须要有一快网卡
                -网卡由不同厂商生产的
                    -每块网卡都有世界上独一无二的十二位编号
                        -前六位代表厂商号,后六位代表流水号
         -交换机:
             可以让多台电脑连接到一起
         基于以太网协议发送数据
              特点
              广播,单播
              弊端
              广播风暴,不能跨局域网通信
    
    物理连接层
        01010101
    
    
    IP用于标识某一台计算机的位置
    port用于确认计算机上的一个应用软件
    ip+port:世界上某一台电脑上的一个应用软件
    

    Socket:
    什么是socket
    模块用于写cs套接字
    为什么要用socket
    socket套接字会封装好各层协议的工作
    好处
    可以节约开发成本.
    如何使用
    import socket

  • 相关阅读:
    java字符串类型——String
    Arrays.asList(String[]).add(String) 报错
    Bigdecimal除法异常
    java使用AES-256-ECB(PKCS7Padding)解密——微信支付退款通知接口指定解密方式
    centos安装rocketMQ
    拦截器中获取不到controller注解问题
    springboot接收date类型参数
    mybatis
    mybatis generator对于同一个表生成多次代码的问题
    抓包工具之MitmProxy
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11694434.html
Copyright © 2011-2022 走看看