黑马程序员技术交流社区
标题:
UDP传输
[打印本页]
作者:
心在左边跳
时间:
2015-7-10 14:55
标题:
UDP传输
DatagramSocket
DataPacket(数据报包)
import java.net.*;
/**
*通过UDP传输方式,将一段文字发送出去
*1.建立UDP socket服务
*2.提供数据,并将数据封装到数据包中
*3.通过socket服务的发送功能,发送数据包
*4.关闭资源。
*/
public class UDPSend{
public static void main(String[] args) throws Exception {
//创建UDP服务,通过DatagramSocket对象
DatagramSocket ds= new DatagramSocket();
//提供数据,并将数据封装到数据包中
byte[] data="UDP COME".getBytes();
DatagramPacket dp=new DatagramPacket(data,data.length,InetAddress.getByName("127.0.0.1"),10001);
//通过socket服务的发送功能,发送数据包
ds.send(dp);
//关闭资源
ds.close();
}
}
复制代码
import java.net.*;
/**
* 定义一个应用程序,用于接受UDP协议传输的数据并处理
*1.定义UDPSocket服务,通常监听一个端口
*2.定义一个数据包,存储接收到的字节数据。用数据包对象提取字节数据中的信息
*3.通过socket服务的receive方法将收到的数据存入已定义好的数据包中
*4.通过数据包对象的特有功能,将这些不同的数据取出来,打印在控制台。
*5.关闭资源。
*/
public class UDPReceive {
public static void main(String[] args) throws Exception {
//创建UDPSocket,建立端点,监听10000端口
DatagramSocket ds= new DatagramSocket(10001);
//定义数据包,存储数据
byte []buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//阻塞式方法
ds.receive(dp);
//获取发送端的IP
String ip=dp.getAddress().getHostAddress();
//获取传输的数据
String data=new String(dp.getData(),0,dp.getLength());
//获取的发送端的数字标识
int port=dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
ds.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2