java udp 发送和接收_UDP 发送与接收数据

本文提供了一个Java UDP数据发送和接收的实例。在发送端,通过DatagramSocket创建并发送包含特定数据的DatagramPacket到指定IP和端口。在接收端,利用DatagramSocket监听特定端口,接收并解析数据包,展示发送方的IP地址、端口号及接收到的数据内容。
摘要由CSDN通过智能技术生成

//UDP 发送端

package liu.net.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 Send2 {

public static void main(String[] args) throws IOException {

/*UDP 发送步骤

*1. 建立DatagramSocket

*2. 建立 DatagramPacket

*3. 使用 DatagramSocket 的send 方法 发送数据

*4. 关闭 DatagramSocket

*/

//定义发送使用的端口,接收的IP地址

try {

DatagramSocket ds = new DatagramSocket(8899);

String str = "发送给UDP的数据";

byte[] buf = str.getBytes();

InetAddress ip = InetAddress.getByName("127.0.0.1");

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

ds.send(dp);

ds.close();

} catch (SocketException e) {

e.printStackTrace();

}

}

}

//UDP 接收端

package liu.net.udp;

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.SocketException;

public class Receive2 {

public static void main(String[] args) throws IOException {

/*UDP接收步骤:

* 使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

*定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

*通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

*使用DatagramPacket的方法,提取数据。

*关闭资源。

*/

//1.使用 DatagramSocket(int port) 建立socket(套间字)服务。

//(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

DatagramSocket ds = new DatagramSocket(8890);

//2.定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

byte[] buf = new byte[1024];

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

//3.通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

ds.receive(dp);

//4.使用DatagramPacket的方法,提取数据。

//获取接收的数据。数据报包也包含发送方的 IP 地址和发送方机器上的端口号。

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

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

int sourcePort = dp.getPort();

System.out.println("原地址:"+sourceAddress+"  发送端端口号:"+sourcePort);

System.out.println("收到的数据内容:"+receiveData);

//5.关闭资源。

ds.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值