新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章运用简单易懂的例子给大家介绍java实现基于UDP协议网络Socket编程的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站-专业网站定制、快速模板网站建设、高性价比闻喜网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式闻喜网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖闻喜地区。费用合理售后完善,十载实体公司更值得信赖。一、前言:认识UDP
UDP,全称User Datagram Protocol(用户数据报协议),是Internet 协议集支持一个无连接的传输协议。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。
UDP主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向报文的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口,适用端口分别运行在同一台设备上的多个应用程序。
二、UDP的特点(与TCP相比)
正是UDP提供不可靠服务,具有了TCP所没有的优势。无连接使得它具有资源消耗小,处理速度快的优点,所以音频、视频和普通数据在传送时经常使用UDP,偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
UDP有别于TCP,有自己独立的套接字(IP+Port),它们的端口号不冲突。和TCP编程相比,UDP在使用前不需要进行连接,没有流的概念。
如果说TCP协议通信与电话通信类似,那么UDP通信就与邮件通信类似:不需要实时连接,只需要目的地址;
UDP通信前不需要建立连接,只要知道地址(ip地址和端口号)就可以给对方发送信息;
基于用户数据报文(包)读写;
UDP通信一般用于线路质量好的环境,如局域网内,如果是互联网,往往应用于对数据完整性不是过于苛刻的场合,例如语音传送等。
以上是对UDP的基本认识,与以前学习的理论相比,接下来的实践更加有趣,实践出真知。
三、UDP网络Socket编程(Java实现)
首先,熟悉java中UDP编程的几个关键类:DatagramSocket(套接字类),DatagramPacket(数据报类),MulticastSocket。本篇主要使用前两个。
1、创建客户端
第一步,实例化一个数据报套接字,用于与服务器端进行通信。与TCP不同,UDP中只有DatagramSocket一种套接字,不区分服务端和客户端,创建的时候并不需要指定目的地址,这也是TCP协议和UDP协议大的不同点之一。
public UDPClient(String remoteIP,String remotePort) throws IOException{ this.remoteIP=InetAddress.getByName(remoteIP); this.remotePort=Integer.parseInt(remotePort); //创建UDP套接字,系统随机选定一个未使用的UDP端口绑定 socket=new DatagramSocket(); }