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

    一,软件架构
      1,网络编程入门
        CS架构,全称:ClientServer 客户端和服务器架构
        BS架构,全称:BrowserServer 浏览器和服务器架构
        ★,两种架构各有优势,无论哪种都离不开网络的支持,BS会成为趋势
        网络编程:在一定协议下,编写实现两台计算机通信的程序
      2,网络通信协议
        概述:
          计算机必须遵守的规则----》目标是完成数据交换
        4层分层的模型:
          物理层,数据链路层     底层网络协议
          网络层         IP (因特网互相协议)
          传输层           TCPUDP
          应用层         HTTP(https比http更安全一些)
      3,协议分类
        java.net包中包含了相关的类和接口----》提供两种常见的网络协议支持
        1,TCP
          概述:
            面向链接的通信协议。
          特点:
            可以保证数据的安全传输,不丢失。 下载文件,浏览网页等。
          原则:(三层握手)
            1》客户端向服务器发送请求,等待服务器确认
            2》服务器向客户端做出响应,确认请求
            3》客户端再次向服务器发出确认请求,确认连接
        2,UDP
          概述:
            面向无链接的通信协议
          特点:
            传输数据不需要连接,不管对方是否在线,传输速度快,但是容易丢失数据,不可靠的协议。 视频会议,QQ聊天等。
     
    二,网络通信的三要素
      1,协议
        如:HTTP,TCP,UDP等
      2,IP
        IPv4 由32位的二进制组成,可组42亿个,每位0-255之间
        IPv6 由128位的十六进制组成,解决了网络资源不够用的问题
        cmd----》控制台 DOS命令:
          1》ipconfig 查询自己的IP地址
          2》ping 空格 IP地址 判断网络是否畅通
      3,端口号
        网络通信的本质是两个进程(应用程序),因此用端口号保证唯一,不重复
        用两个字节表示整数,0-65535之间
        0-1023已被知名网络服务占用了,不能用。
        如:
          服务器端口   80
          MySQL     3306
          Oracle     1521
     
    三,TCP通信
      1,要严格区别客户端 client 服务器端 server
      两端通信步骤:
        1》客户端主动连接服务器,连接成功才通信
        2》服务器端一定要先启动
      2,java中提供了两个类来实现TCP程序
        java.net.Socket----》创建Socket对象----》发送请求到服务器----》服务器做出响应----》两者建立通信
        java.net.ServerSocket----》创建ServerSocket对象----》相当于开启一个服务----》用来等待客户端连接
     
    四,Socket
      概述:
        此类实现客户端(也可以叫做“套接字”),是两台机器间通信的端点
      构造:
        new Socket(InetAddress address,int port) 创建对象,参数传连接到主机的指定地址,端口号
      方法:
        getInputStream();----》客户端输入流
        getOutputStream();----》客户端输出流
        close();----》关流
        shutdownOutput();----》禁用此客户端的输出流
      使用:
        TCP通信端的客户端向服务器发送请求连接,和服务器进行三次握手,建立逻辑关系
        1,创建客户端Socket对象,封装服务器的IP,端口号
        2,使用Socket对象.getOutputStream(); 获取网络字皆输出流OutputStream对象
        3,使用字节输出流对象.write();给服务器发送数据
        4,使用Socket对象.getInputStream();获取网络字节输入流InputStream对象
        5,使用字节输入流对象.read();读取服务器返回的响应数据
        6,释放资源
     
    五,ServerSocket
      概述:
        这个类实现了服务器。 服务器等待通过网络进入的请求。 它根据该请求执行一些操作,然后可能将结果返回给请求者。
      构造:
        new ServerSocket(int port); 绑定一个指定端口号
      方法:
        accept();----》监听并接受到此服务器的连接请求,用于实现客户端通信,阻塞知道建立连接
      使用:
        服务端Server 接收客户端的请求,与客户端建立逻辑关系,并往客户端写回应数据
        1,创建服务器ServerSocket对象,构造方法中绑定端口号
        2,使用ServerSocket对象.accept(); 监听并获得客户端请求 Socket对象
        3,使用Socket对象.getInputStream(); 获取InputStream对象
        4,使用IS对象.read(); 读取客户端发送的请求数据
        5,使用Socket对象.getOutputStream(); 获取OutputStream对象
        6,使用OS对象.write(); 写回应数据
        7,释放资源
  • 相关阅读:
    Python读写Excel文件和正则表达式
    R Language Learn Notes
    Electron小记
    Unity商店下载的文件保存路径?
    Unity LineRenderer制作画版
    unity图形圆形展开
    [转]资深CTO:关于技术团队打造与管理的10问10答
    unity游戏在ios11上不显示泰语解决办法
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/kide1412/p/10993003.html
Copyright © 2011-2022 走看看