您的位置:首页 > 理论基础 > 计算机网络

java网络编程之 UDP的使用

2015-10-17 21:03 736 查看
User DatagramSocket Protocol 的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,以及到达目的地时间以及内容的正确性都是不能保证的,每个传输的数据报必须限定在64KB之内。

主要使用下面两个类:

DatagramPacket:此类表示数据报包

DataPramSocket :此类用来表示发送和接收数据包的套接字。

UDP协议中不存在服务器端客户端,因为其并没有建立真正的连接。

发送端:

发送过程:

1:将要发送的数据报打包

2:创建UDP的socket对象

3:发送数据。

代码如下:

public class UDPService {

public static void main(String[] args) throws IOException {

String info = "hello client I am from UDPService ";

//把要发送的数据转换成字节数组

byte []bytes = info.getBytes();

// 数据报打包

try {

DatagramPacket data = new DatagramPacket(bytes, 0, bytes.length, InetAddress.getByName("localhost"),8000);

//创建一个UDPSocket对象

DatagramSocket datagramSocket = new DatagramSocket(3000);//表示我自己的端口号(如果另一个端口想要发送数据必须写这个端口号)

datagramSocket.send(data);//发送数据报

System.out.println("发送完毕");

} catch (UnknownHostException e) {

e.printStackTrace();

}

}

}

接收端:

接收端与发送端的过程刚好相反。

public class UDPClient {

public static void main(String[] args) throws IOException {

byte bytes []= new byte [1024];

//创建数据报包

DatagramPacket dp = new DatagramPacket(bytes, bytes.length);

//创建UDP协议的Socket对象

DatagramSocket socket = new DatagramSocket(8000);

socket.receive(dp);//接收数据会造成堵塞

String info =(new String ( dp.getData(),0,dp.getLength()));

System.out.println(info);

socket.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: