首先,我们需要先了解UDP协议、TCP协议的概念:
一、UDP协议:用户数据报协议,是一种无连接协议
二、TCP协议:文件传输协议,是一种面向连接的协议
他们都位于TCP/IP模型中的传输层,为整个网络体系结构建立通信服务,是两种不同的通信协议。
一点介绍先到,随后代码如龙(以传输文本数据为例)
基于无连接的UDP协议:
语义结构:
发送端:输入消息——拆分消息——按类的结构打包消息——发送消息
DatagramPacket类似于集装箱,DatagramSocket类似于码头
所谓无连接,所以发送方只需要知道对方IP(这里用本机地址)和端口号,也就是socket类,socket由地址(IP)和端口号(port)组成 ,便可以发送消息,不用事先建立链接,如QQ
接收端:找到消息端口——制定容器——接收——拆分
基于面向连接的TCP协议:需要双方先建立连接,后通信,如打电话。
客户发起连接——客户发送请求——服务器响应请求
总结:主要区别
UDP不需要事先建立连接,无服务器客户端之分,只有发送端和接收端,协议不可靠,数据传输采用DatagramPacket(数据报)
TCP需要事先建立连接,有服务器客户端之分,JAVA网络编程中,需先运行服务器才能运行客户端,协议可靠,数据传输采用IO流;