zoukankan      html  css  js  c++  java
  • 十四、网络通信

    1、局域网(LAN)、广域网(WAN)

    2、网络协议

    (1)IP协议

    TCP/IP模式:一种层次结构,分为4层,应用层、传输层、互联网层和主机到网络层。

    (2)TCP与UDP协议

    TCP、HTTP、FTP、Telent等都需要使用可靠的通信频道。而UDP则适合于一些对数据准确性要求不高的场合(如网络聊天室、在线影片等)。

    (3)端口和套接字

      端口将所有的数据通过“物理连接”对内、外送达特定的计算机。

      套接字(Socket):用于将应用程序与端口连接起来。

    3、TCP程序设计基础

    (1)InetAddress类

      与IP地址相关的类,获取IP地址和主机地址等信息。

      方法:getByName(String host):获取与host相对应的InetAddress对象

         getHostAddress():获取InetAddress对象所含的IP地址

         getHostName():获取此IP地址的主机名

         getLocalHost():返回本地主机的InetAddress对象

    (2)ServerSocket类

      等待来自网络上的请求,通过制定端口来等待连接套接字。服务器套接字一次可以与一个套接字连接,多出来的存入对垒中,队列最大容纳数默认为50。

      ServerSocket类的构造方法都抛出IOException异常。

      1)ServerSocket():创建非绑定服务器套接字。

      2)ServerSocket(int port):创建绑定到特定端口的服务器套接字。

      3)ServerSocket(int port,int backlog):利用制定的backlog创建服务器套接字并将其绑定到制定的本地端口号。

      4)ServerSocket(int port,int backlog,InetAddress bindAddress):使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。

      方法:accept():等待客户机的连接。若连接,则创建一套接字。

         isBound():判断ServerSocket的绑定状态

         getInetAddress():返回此服务器套接字的本地地址。

         isClosed():返回服务器套接字的关闭状态。

         close():关闭服务器套接字

         bind(SocketAddress endpoint):将ServerSocket绑定到特定的地址

         getInetAddress():返回服务器套接字等待的端口号

    (3)TCP网络程序

    4、UDP程序设计基础  

      基本模式:将数据打包,然后将数据包发往目的地

           接收别人发来的数据包,然后查看数据包。

      发送数据包:

      (1)使用DatagramSocket()方法创建一个数据包套接字。

      (2)使用DatagramPacket(byte[] buf,int offset,int length,InetAddress address,int port)方法创建要发送的数据包

      (3)使用DatagramSocket类的send()方法发送数据包

      接收数据包:

      (1)使用DatagramSocket(int port)方法创建数据包套接字,绑定到指定的端口

      (2)使用DatagramSocket(byte[] buf,int length)方法创建字节数组来接收数据包

      (3)使用DatagramPacket类的receive()方法接收UDP包

    (1)DatagramPacket类

      构造方法:DatagramPacket(byte[] buf,int length)

           DatagramPacket(byte[] buf,int length,InetAddress address,int port)

    (2)DatagramSocket类

      构造方法:DatagramSocket()

           DatagramSocket(int port)

           DatagramSocket(int port,InetAddress addr)

    (3)UDP网络程序

  • 相关阅读:
    BF算法和KMP算法
    Python课程笔记 (五)
    0268. Missing Number (E)
    0009. Palindrome Number (E)
    0008. String to Integer (atoi) (M)
    0213. House Robber II (M)
    0198. House Robber (E)
    0187. Repeated DNA Sequences (M)
    0007. Reverse Integer (E)
    0006. ZigZag Conversion (M)
  • 原文地址:https://www.cnblogs.com/yl-saber/p/6017423.html
Copyright © 2011-2022 走看看