目录
TCP协议与UDP协议的区别如表格所示:
类型 | 面向连接 | 传输可靠性 | 传输速率 | 所需资源 | 应用场景 | 首部长度 |
TCP | 面向连接 | 可靠 | 慢 | 多 | 要求数据传输可靠(如文件、邮件传输) | 20~60字节 |
UDP | 无连接 | 不保证可靠 | 快 | 少 | 要求通信速度快(如视频,音频) | 8字节 |
一.TCP和UDP的连接方式
1.TCP是面向连接的,所以在使用TCP进行传输时,必须先建立连接,数据传送结束后要释放连接。编程时,需要使用Socket模型服务器端用ServerSocket监听指定端口,客户端使用Socket(InetAdrdress,port)连接服务器,服务器端用accept()接收并返回Socket实例,双方通过Socket打开InputStream/OutputStream读写数据;
下面是TCP编程代码演示:客户端和服务器端建立连接后可以收到服务端发来的提取码。
服务器端:使用ServerSocket类建立服务器端对象,服务器监听8080端口,accept()函数功能是等待客户端的请求连接,客户端没有请求连接时便一直处于阻塞状态,必须要连接成功后才能进行通信,服务器先打开,客户端再请求。
public class ServerSocketTCP {
public static void main(String[] args) {
//服务端通过创建ServerSocket
try(ServerSocket server=new ServerSocket(8080)) {
Socket client = server.accept();
System.out.println("客户端"+client.getRemoteSocketAddress()+"连接");
try(BufferedWriter