文章目录
前言
之前我们讲过使用TCP网络编程的有关用法,讲了如何使用ServerSocket和Socket来构建服务端和客户端,以及如何使用字节输入输出流来接收和发送数据.
今天我将讲述如何使用UDP网络编程实现简单的发送数据和接收来自客户端或服务端的数据.
提示:以下是本篇文章正文内容,下面案例可供参考
一、UDP和TCP网络通信比较

从图中可以看到,TCP和UDP第一个区别就是TCP是面向连接的编程,UDP是面向非连接的编程.
面向连接意思就是必须先开启服务端,然后通过连接服务端才可以发送消息和接收消息,同理,面向非连接意思就是可以在不开启服务器的情况下,直接向指定的地址(包括IP地址和端口号)发送消息.
是否连接带来的直接影响就是TCP传输消息可靠,UDP传输消息不可靠;因为UDP在不开服务器的情况下,客户端发送的信息服务端是否接收到是不可知的.TCP通信必须先开启服务器才能连接,所以服务端一定可以接收到客户端的消息.
同理.因为TCP需要先开启服务端才能发送消息,所以它的通信速度相对较慢,而UDP不需要通过确认服务端是否开启,直接向其发送数据,所以它的数据传输速度相对较快,只是无法确认服务端是否接收到消息.
TCP和UDP的具体使用分场景,可以根据实际需求选择不同的方式.

本文介绍了UDP与TCP网络通信的区别,重点讲解了使用Java的DatagramSocket和DatagramPacket进行UDP通信的步骤,包括服务端发送和接收数据,以及客户端的相应操作。通过对比TCP,阐述了UDP的无连接性及其速度优势,适合对可靠性要求不高的场景。
4万+

被折叠的 条评论
为什么被折叠?



