50,530
社区成员
发帖
与我相关
我的任务
分享
package Day23.Internet;
import java.awt.event.HierarchyEvent;
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 Demo2Sender {
public static void main(String[] args) {
// 发送端的使用步骤
DatagramSocket datagramSocket = null;
DatagramPacket datagramPacket = null;
// 1.建立UDP服务
try {
datagramSocket = new DatagramSocket();
System.out.println("建立UDP服务成功!!");
} catch (SocketException e) {
e.printStackTrace();
}
// 2.准备数据,把数据封装在数据包中
// 在数据包里面应该表明是给谁的
String data = "这是一个UDP的例子。。。";
// DatagramPacket datagramPacket = new DatagramPacket(buf, length,
// address, port)
// buf:发送的字节数组;length:发送的数据内容的大小;address:发送的目的IP地址对象;port:端口号;
try {
datagramPacket = new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(),
60090);
System.out.println("建立数据包成功!!");
} catch (UnknownHostException e) {
e.printStackTrace();
}
// 3.货物装好了发货了
// 调用udp的服务发送数据包
try {
datagramSocket.send(datagramPacket);
System.out.println("发送成功!!");
} catch (IOException e) {
e.printStackTrace();
}
// 4.关闭资源-----实际上就是释放占用的端口号
if (datagramSocket != null) {
datagramSocket.close();
System.out.println("关闭成功");
System.out.println("hehe");
}
}
}
package Day23.Internet;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
//接收端
public class Demo2Receiver {
public static void main(String[] args) throws IOException {
DatagramSocket socket = null;
DatagramPacket datagramPacket = null;
// 1.建立一个UDP的服务
try {
socket = new DatagramSocket(60090);
System.out.println("建立UDP服务成功!!");
} catch (SocketException e) {
e.printStackTrace();
}
System.out.println("hehe");
byte[] buf = new byte[1024];
// 2. 准备空的数据包用于存放数据
datagramPacket = new DatagramPacket(buf, buf.length);
// 3.调用udp的服务接受数据
socket.receive(datagramPacket);// receive方法是一个阻塞类型的方法,在没有接收到数据前是阻塞的
// 数据实际上是存储到了buf的字节数组中
System.out.println("数据包接收数据成功!!");
System.out.println("接收端接收到的数据是:" + new String(buf, 0, datagramPacket.getLength()));
// 4.关闭资源
if(socket!=null)
socket.close();
}
}