日志文章

2019-12-28 aflfte2011

UDP发送与接收数据

package com.aflfte.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * UDP接收端  基本流程
 * 1、使用DataGramSocket创建指定端口接收端
 * 2、准备容器封装成DataGramPacket包裹
 * 3、阻塞式接收包裹receive(DataGramPacket p)
 * 4、分析数据
 *    byte[] getData();
 *    getLength();
 * 5、释放资源
 * 
 * @author jinhao
 *
 */
public class UdpServer {
public static void main(String[] args) throws IOException {
System.out.println("开始接收。。。。");
//1、使用DataGramSocket创建指定端口接收端
DatagramSocket server=new DatagramSocket(9999);
//2、准备容器封装成DataGramPacket包裹
byte[] container=new byte[1024*60];
DatagramPacket packet=new DatagramPacket(container,0, container.length);
//3、阻塞式接收包裹receive(DataGramPacket p)
server.receive(packet);
/** 4、分析数据
*    byte[] getData();
*    getLength();
**/
byte[] datas=packet.getData();
int len=packet.getLength();
System.out.println(new String(datas,0,len));
// 5、释放资源
server.close();
}
}



package com.aflfte.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

/**
 * UDP发送端 基本流程
 * 1、使用DataSocket 指定端口创建发送端
 * 2、准备数据 一定要转成字节数组
 * 3、将数据封装成DatagramPacket包裹,需要指定目的地(IP地址+端口);
 * 4、发送包裹send(DatagramPacket p)
 * 5、释放资源
 * 
 * 
 * 
 * 
 * @author jinhao
 *
 */
public class UdpClient {
public static void main(String[] args) throws Exception {
System.out.println("发送方启动中。。。。。。");
//1、使用DatagramSocket 指定端口创建发送端
DatagramSocket client=new DatagramSocket(8866);
//2、准备数据 一定要转成字节数组
String data="发送了。。。。";
byte[] datas=data.getBytes();
//3、将数据封装成DatagramPacket包裹,需要指定目的地(IP地址+端口);
DatagramPacket packet=new DatagramPacket(datas, 0, datas.length,new InetSocketAddress("localhost",9999));
//4、发送包裹send(DatagramPacket p)
client.send(packet);
//5、释放资源
client.close();

}
}

« UDP发送与接收文件 | URL统一资源定位器»