udp协议传输

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;

public class UDPDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

//UDP发送

UDPSend();

System.out.println("send");

}

//UDP发送

public static void UDPSend(){

/*需求:通过UDP传输方式,将一段文字数据发送出去

* 思路:1.建立UDPSocket服务

* 2.提供数据,并将数据封装到数据包中

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

* 4.关闭资源

*/

//1.创建udp服务,通过datagramsocket对象

DatagramSocket ds = null;

try {

ds = new DatagramSocket();

//2.确定数据并封装数据包

byte[] data = "UDP lai le ".getBytes();

try {

DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getByName("192.168.1.118"), 10000);

try {

ds.send(dp);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

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

} catch (SocketException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

//4.关闭资源

ds.close();

}

}

}


import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.SocketException;

public class UDPRecevie {

public static void main(String[] args) {

// TODO Auto-generated method stub


/*

* 需求:  定义一个应用程序,用于接受udp协议传输的数据并处理

*

* 思路:

* 1.定义udpSocket服务

* 2.定义一个数据包,因为要存储收到的字节数据,

* 因为数据包对象中有更多功能可以提取字节数据中的不同数据

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

* 4.通过数据包对象的特有功能,将这些不同设备取出,打印在控制台

* 5.关闭资源

*

* 定义接收端时,通常会监听一个端口,其实就是给这个接受网络应用程序定义数字标识

* 方便于明确那些数据过来该应用程序可以处理

*/

System.out.println("receive");

//1.创建udpSocket 建立终端

DatagramSocket ds = null;

try {

ds = new DatagramSocket(10000);

//2.定义一个数据包,用于存储数据

byte[] buf = new byte[1024];

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

//3.通过receive方法将收到的数据存入数据包中

try {

ds.receive(dp);

//4.通过数据包的方法获取其中的数据

String ip = dp.getAddress().getHostAddress();

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

int port = dp.getPort();

System.out.println(ip+"::"+data+"::"+port);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (SocketException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

ds.close();

}

}

}

你可能感兴趣的:(udp协议传输)