java udp网络编程

时间:2021-08-25 03:56:21
import java.net.*;

/*
通过UDP传输发送文字数据
1.建立socket服务
2.提供数据,并封装到数据包中
3.通过sokect服务的发送功能,将数据包发送出去
4.关闭资源
*/
class udpsend
{
public static void main(String[] arg) throws Exception {
//1.创建UDP服务。通过DatagramSocket对象
DatagramSocket ds = new DatagramSocket(1234); //2.确定数据并封装成数据包
byte[] buf = "udp is coming".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),4567); //3.通过socket服务,将已有的数据包发送出去
ds.send(dp); //4.关闭资源
ds.close(); }
} /*需求:定义一个应用程序勇于接收UDP协议传输的数据 思路:
1.定义udpsocket服务,通常会监听一个端口
2.定义一个数据包。因为要存储接收到的字节数据
因为数据包对象中有更多功能可以提取字节数据中的不同数据信息
3.通过socket服务的receive方法将收到的数据存入已定义好的数据包中
4.通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上
5.关闭资源
*/
class udprece
{
public static void main(String[] args) throws Exception{
//1.创建udp,建立端点
DatagramSocket ds=new DatagramSocket(4567); //2.定义数据包,用于存储
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length); //3.通过receive方法间接收到的数据存入数据包中
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+":"+port+"------"+data); //5.关闭资源
ds.close(); }
}