Java网络编程之UDP网络编程

Posted zengblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java网络编程之UDP网络编程相关的知识,希望对你有一定的参考价值。

一、UDP网络通信

1、类DatagramSocket和DatagramPacket实现了基于UDP协议网络程序。
2、UDP数据报通过数据报套接字DatagramSocket发送和接收,
系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。
3、DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址
和端口号以及接收端的IP地址和端口号。
4、UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方
和接收方的连接。如同发快递包裹一样。

二、DatagramSocket类的常用方法

1、public DatagramSocket(int port)创建数据报套接字并将其绑定到本地主机上的指定端口。
套接字将被绑定到通配符地址,IP 地址由内核来选择。
2、public DatagramSocket(int port,InetAddress laddr)创建数据报套接字,将其绑定到指定的本地地址。
本地端口必须在0到65535之间(包括两者)。如果IP地址为0.0.0.0,套接字将被绑定到通配符地址,IP 地址由内核选择。
3、public void close0)关闭此数据报套接字。
4、DatagramPacket 包含的信息指示:将要发送的数据、其长度、远程主机的IP地址和远程主机的端口号。
5、public InetAddress getlLocalddress()获取套接字绑定的本地地址。
6、public int getLocalPortQ)返回此套接字绑定的本地主机上的端口号。
7、public InetAddress getinetAddress()返回此套接字连接的地址。如果套接字未连接,则返回null.
8、public int getPort()返回此套接字的端口。如果套接字未连接,则返回-1。
9、public void send(DatagramPacket p)从此套接字发送数据报包。 

三、DatagramPacket类的常用方法

1、public DatagramPacket(byte[] buf,int length)构造DatagramPacket, 用来接收长度为length的数据包。
length 参数必须小于等于buf.length。
2、public DatagramPacket(byte[] buf,int length,InetAddress address,int port)构造数据报包,
用来将长度为length 的包发送到指定主机上的指定端口号。length参数必须小于等于buf.length。
3、public InetAddress getAddress()返回某台机器的IP地址,此数据报将要发往该机器或者是从该机器接收到的。
4、public int getPort()返回某 台远程主机的端口号,此数据报将要发往该主机或者是从该主机接收到的。
5、public byte[] getData()返回数据缓冲区。接收到的或将要发送的数据从缓冲区中的偏移量offset处开始,持续length长度。
6、public int getlength()返回将要发送或接收到的数据的长度。

(一)发送端

技术图片

(二)接收端

技术图片

以上是关于Java网络编程之UDP网络编程的主要内容,如果未能解决你的问题,请参考以下文章

Java网络编程编程之TCP编程和UDP编程

java 25 - 4 网络编程之 UDP协议传输思路

JAVA高并发网络编程之TCP和UDP协议

java 25 - 4 网络编程之 UDP协议传输的代码优化

java 之UDP编程

java笔记之网络知识-----UDP