文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

详细介绍java UDP通信

2016-02-03 12:38

关注

介绍:

UDP为用户数据报协议,在java中操纵UDP使用JDK中java.net包下的DatagramSocketDatagramPacket类,可以方便的控制用户数据报文。

DatagramPacket类将数据字节填充到UDP包中,这称为数据报。

DatagramSocket用来发送这个包。如果接受数据,可以从DatagramSocket中接受一个 DatagramPack对象,然后从该包中读取数据的内容。

UDP是面向无连接的单工通信,它速度快。

在线视频教程推荐:java在线视频

1、 DatagramSocket类

构造函数:

DatagramSocket()

创建实例,通常用于客户端编程,他并没有特定的监听端口,仅仅使用一个临时的。

DatagramSocket(int port)

创建实例,并固定监听Port端口的报文。

DatagramSocket(int port, InetAddress laddr)

这是个非常有用的构建器,当一台机器拥有多于一个IP地址的时候,由它创建的实例仅仅接收来自LocalAddr的报文。

DatagramSocket(SocketAddress bindaddr)

bindaddr对象中指定了端口和地址。

常用函数:

receive(DatagramPacket p)

接收数据报文到p中。receive方法是阻塞的,如果没有接收到数据报包的话就会阻塞在哪里。

send(DatagramPacket p)

发送报文p到目的地。

setSoTimeout(int timeout)

设置超时时间,单位为毫秒。

close()

关闭DatagramSocket。在应用程序退出的时候,通常会主动的释放资源,关闭Socket,但是由于异常的退出可能造成资源无法回收。所以应该在程序完成的时候,主动使用此方法关闭Socket,或在捕获到异常后关闭Socket。

2、 DatagramPacket类

DatagramPacket类用于处理报文,将字节数组、目标地址、目标端口等数据包装成报文或者将报文拆卸成字节数组。
构造函数:

DatagramPacket(byte[] buf, int length, InetAddress addr, int port)

从buf字节数组中取出offset开始的、length长的数据创建数据对象,目标地址是addr,目标端口是port。

DatagramPacket(byte buf[], int offset, int length, SocketAddress address)

从buf字节数组中取出offset开始的、length长的数据创建数据对象,目标地址是address

常用函数:

getData() byte[]

从实例中取得报文中的字节数组编码。

setData(byte[] buf, int offset, int length)

设置数据报包中的数据内容

3、UDP通信的通信流程

UDP发送端:

建立updsocket服务。

提供数据,并将数据封装到数据包中。

通过socket服务的发送功能,将数据包发出去。

关闭资源。

UDP接收端:

定义udpsocket服务,通常会监听一个端口。

定义一个数据包,存储接收到的字节数据。

通过socket服务的receive方法将收到的数据存入已定义好的数据包中。

通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上。

关闭资源。

更多相关问题请访问java文章教程:java入门

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯