十四、网络通信

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网络程序

原文地址:https://www.cnblogs.com/yl-saber/p/6017423.html