UDP
将数据及源和目的封装成数据包中,不需要建立连接
每个数据报的大小在限制64k内
因无连接,是不可靠协议
不需要建立连接,速度快
TCP
建立连接,形成传输数据的通道
在连接中进行大数据量传输
通过三次握手完成连接,是可靠协议
必须建立连接,效率会降低
Socket
Java网络编程在很大的程度上就是套接字(Socket)编程,套接字是让用户与网络通信的一种对象,它并不是物理设备,可以将其理解为网络连接的端点。
两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个socket
socket通常用来实现client-server连接(C/S)
Socket
socket是指在一个特定的编程模式下,进程间通信链路的端点。
当进程通过网络进行通信时,Java技术使用它的流模型。一个socket包括两个流,
输入流和输出流。如果一个进程要通过网络向另一个进程发送数据,只需要简单写入socket相关的输出流。一个进程通过与socket相关联的输入流用读取另一个进程所写的数据。
建立网络连接后,使用与socket相关联的流与其他流是非常相似的
Socket客户端应用程序编写的基本步骤
1.创建指定服务器上指定端口号的Socket对象
2.创建与Socket对象绑定的输入输出流,并建立相应的数据输入输出流。
3.通过数据输入输出流与服务器端进行数据读写,完成双向通信。
4.通过调用close()方法关闭与服务器的连接,并关闭各个流对象,结束通信。
Socket服务器端应用程序编写的基本步骤
1.创建一个等待连接的ServerSocket对象,如sersocket.
2.调用sersocket对象的accept()方法监听接收客户端的连接请求;当监听到一个客户的连接请求时,连接成功,并返回一个用于通信的Socket对象。
3.创建与Socket对象绑定的输入输出流,并建立相应的数据输入输出流。
4.通过数据输入输出流与客户端进行数据读写,完成双向通信。
5.当客户断开连接时,关闭各个流对象,结束通信。