网络通信协议

Posted 刚反面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络通信协议相关的知识,希望对你有一定的参考价值。

java.net.InetAddress IP地址
  静态方法:(生成主机对象 BF-20170226IIJX/192.168.91.82)
    static InetAddress getLocalHost() 返回本地主机
    static InetAddress getByName(String host) 返回指定地址的主机对象 可以传入 IP地址 主机名 域名

  非静态方法
    String getHostName() 返回主机名
    String getHostAddress() 返回主机IP地址

UDP协议
  发送端
    java.net.DategramSocket (发送时的运行路径)

    构造方法
      DategramSocket() 发送端对象
    方法
      void send(DategramPacket p)发送数据包

   java.net.DategramPacket (数据包)
      构造方法
      DategramPacket(byte[] buf, int length, InetAddress address, int port)
      数据包封装(数据, 长度, 地址(主机对象), 端口号)

   1.准备数据 字节数组
   2.创建数据包对象
   3.创建发送端对象(发送时的运行路径)
   4.调用发送端send(DategramPacket p)发送数据包
   5.关闭资源 发送端

  接收端
    java.net.DategramSocket 接收端
  构造方法
    DategramSocket(int port) 接收端对象(指定端口接收)
  方法
    void receive(DategramPacket p)接收数据包
    java.net.DategramPacket 数据包
  构造方法
    DategramPacket(byte[] buf, int length) 接收数据包的对象

  1.创建接收端对象
  2.创建数据包对象
  3.调用数据包对象
  4.拆包
    DategramPacket
      int getLength() 获取长度
      InetAddress getAddress() 获取发送端的主机对象
      int getPort() 发送端的端口号 操作系统随机分配
  5.关闭资源

TCP协议通信
  java.net.Socket 客户端对象
  构造方法
    Socket(InetAddress address, int port) 指定服务器地址和端口号
    Socket(String host, int port)
  方法
    InputStream getInputStream() 获取同路中的字节输入流
    OutputStream getOutputStream() 获取同路中的字节输出流

  1.创建客户端对象 绑定 服务器地址和端口号
  2.获取字节输出流调用getOutputStream
  3.输出 数据
  4.获取字节输出流 用来接收服务器发送回来的数据
  5.接收数据
  6.关闭资源

java.net.ServerSocket TCP服务端对象
  构造方法
    ServerSocket(int port) 绑定端口号
  方法
    Socket accept() 哪个客户端连接服务器返回哪个客户端的Socket对象

  1.创建ServerSocket对象
  2.调用accept() 获取发送数据的客户端对象
  3.调用客户端对象的getInputStream方法 用来接收客户端发送的数据
  4.调用客户端对象的 getOutputStream方法 向客户端写出数据
  5.关闭资源

UDP:传送速度快,但是容易丢失数据,只能发送64kb以下的数据

以上是关于网络通信协议的主要内容,如果未能解决你的问题,请参考以下文章

网络通信协议

通信教程 | 概述通信协议

物联网的七大通信协议

通信协议&&cookie

什么是通信网络协议

干货 | 如何快速理解通信的硬件层协议与软件层协议?