UDP-TCP

  

一。网络相关基本概念

1。网络通信协议:是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。通信协议的具体种类有很多,主要有:UDP协议和TCP协议

2。UDP协议:是用户数据报协议的简称,中文名是用户数据报协议。是一种无连接的协议。传输效率很高;数据不安全,容易丢失;

特点:

1:面向无连接;

2:效率高;

3:不安全;

3。TCP/IP协议:传输控制协议/互联网协议的简写,中译名为传输控制协议/因特网互联协议

特点:

1:面向连接;(客户端和服务器需要事先建立起连接,才能通信,3次握手)

2:效率低;

3:数据安全;

4。网络协议数据传输流程:从下至上:链路层——网络层——传输层——应用层

链路层:软件驱动与硬件接口;

网络层:数据的分组与处理,IP地址,端口号;

传输层:网络通信协议的核心,数据通过网络进行传输;

应用层:应用级软件,主要进行数据的解析;

5. IP地址:是网络中的参与者的唯一身份标识。包含IPV4/IPV6.IPV4使用4个字节表示IP地址;每个字节的范围只能是0 - 255之间。

6。端口号:是电脑中用于识别不同进程;用2个字节表示一个端口号,能表示的范围0 - 65535(2 ^ 16=65536);其中0 - 1024端口号已经被计算机的核心服务占用了,建议程序员使用1024之后

的端口号。


二。InetAddress类(java.net)

介绍:InetAddress是java编写的一个类,用于描述计算机的ip地址;

构造方法:InetAddress构造方法不能直接使用,因此必须通过静态方法,获取对象:

继承关系:java . lang . Object, java.net.InetAddress

定义:公开课InetAddress扩展对象实现Serializable

静态方法:

公共静态InetAddress getByName主机(String){}:在给定主机名的情况下确定主机的ip地址

公共静态InetAddress getLocalHost()抛出UnknownHostException{}:返回本地主机

常用方法:

公共字符串getHostAddress(){}:返回ip地址字符串(以文本表现形式)

公共字符串getHostName(){}:获取此ip地址的主机名

代码演示:

import  java.net.InetAddress;   import  java.net.UnknownHostException;   public  class  NetDemo {   public  static  void  main (String [], args) {//获取本地主机,返回InetAddress对象   InetAddress  host =,空;   尝试{   时间=host  InetAddress.getLocalHost ();   }捕捉(UnknownHostException  e) {   e.printStackTrace ();   }   System.out.println(主机);//获取本地主机名   String  name =, host.getHostName ();//获取本地ip   String  ip =, host.getHostAddress ();   System.out.println(“计算机名:“+名称+“;ip为:”+ ip);//通过别人的计算机名,获取别人计算机的IP   尝试{   时间=host  InetAddress.getByName(“低潮位”);   }捕捉(UnknownHostException  e) {   e.printStackTrace ();   }   String  ip1 =, host.getHostAddress ();   System.out.println (ip1);   }   }


二。UDP常用类

1。DatagramPacket类(java.net)

继承关系:java . lang . Object, java.net.DatagramPacket

定义:公众最终类DatagramPacket扩展对象

构造方法:

DatagramPacket (byte[]缓冲区,int长度,InetAddress地址,int端口):构造数据报包,用来将长度为长度的包发送到指定主机上的指定端口号。

buf:数组,用于保存要发送的数据,

长度:要发送的数据的长度;

地址:接收者的ip地址对象,

端口:接收者的端口号;

(这个对象用在发送端)。

DatagramPacket (byte[]缓冲区,int长度):构造DatagramPacket,用来接收长度为长度的数据包。

buf:发送者发送的数据将会保存到缓冲区数组中,

长度:表示这个DatagramPacket对象的数组,有多少个位置可以使用;

(这个对象用在接收端)。

常用主法:

公共byte [] getData(){}:返回数据缓冲区。发送接收到的数据或数据从缓冲抵消,并运行length 

长。

公共int getLength(){}:返回数据的长度发送或接收到的数据的长度。


2。DatagramSocket类(java.net)

继承关系:java . lang . Object, java.net.DatagramSocket

定义:公开课DatagramSocket扩展对象实现Closeable

构造方法:

DatagramSocket(),抛出SocketException:构造数据报套接字并将其绑定到本地主机上任何可用的端口。

UDP-TCP