zoukankan      html  css  js  c++  java
  • 网络通信协议

    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以下的数据

  • 相关阅读:
    poj 1113 wall(凸包裸题)(记住求线段距离的时候是点积,点积是cos)
    Atcoder(134)E
    poj 1696 极角排序(解题报告)
    poj 1410 (没做出来,记得闲着没事看看这道题)
    poj1066 线段相交简单应用(解题报告)
    poj 2653 线段相交裸题(解题报告)
    poj 1269
    要习惯用vector代替数组
    在 Angularjs 中$state.go 如何传递参数
    CSS实现内容超过长度后以省略号显示
  • 原文地址:https://www.cnblogs.com/chonglchong/p/6675951.html
Copyright © 2011-2022 走看看