开发者学堂课程【Java 高级编程:UDP 程序】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/431
UDP 程序
数据报发送与接收
简介:之前所见到的都属于 TCP 程序开发范畴,TCP 程序最大的特点是可靠的网络连接,
但是在网络程序开发之中还存在一种 UDP 程序,基于数据报的网络编程实现,
如果要想实现UDP程序需要两个类: DatagramPacket(数据内容)、DatagramSocket (网络发送与接收) 数据报就好比发送的短消息一样,客户端是否接收到与发送者无关。
范例:实现一个 UDP 客户端.
package cn.m1dn.demo.client;
import java. net.DatagramPacket;
import java. net.DatagramSocket;
public class UDPClient {
public static void main(String[ ] args) throws Exception {
//
接收数据信息
DatagramSocket client = new DatagramSocket(9999);
//连
接到9999端口
byte data[] = new byte [1024];
//
接收消息
DatagramPacket packet = new DatagramPacket(data, data.length);// 接收数据
System. out . print1n( "客戸端等待接收岌送的消息.. ......");
client. receive(packet);
//
接收消息,所有的消息都在data字
节
数
组
之中
System . out. print1n( "接收到的消息内容
为·"+ new String(data, 8,packet. getLength()));
c1ient.close();
范例:实现 UDP 服务端.
package cn.mldn.demo.server ;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPServer {
public static void main(String[] args) throws Exception {
DatagramSocket server = new DatagramSocket(9999);
//连
接到9999端口
String str = "www. mldn.cn"; 要
发
送的消息的内容
DatagramPacket packet = new DatagramPacket(str.getBytes()
,
0
,str .1ength());//
发
送数据
server. send(packet);
//发
送消息
System. out. print1n("消息
发
送完半.....");
server. close();
注:UDP 发送的数据一定是不可靠的,但是 TCP 由于需要保证可靠的连接所以所需要的服务器资源就越多。