天天看点

UDP 程序|学习笔记

开发者学堂课程【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()

,str .1ength());//

送数据

server. send(packet);

//发

送消息

System. out. print1n("消息

送完半.....");

server. close();

注:UDP 发送的数据一定是不可靠的,但是 TCP 由于需要保证可靠的连接所以所需要的服务器资源就越多。