Java使用UDP协议发送和接收数据
发布时间
阅读量:
阅读量
1. UDP
UDP是无连接、不可靠传输协议。
2. Java使用UDP协议发送数据代码
四步:
(1) 创建发送端Socket对象
(2) 把数据打包成DatagramPacket对象
(3) 调用DatagramSocket方法发送数据
(4) 释放资源
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UDPSendTest {
public static void main(String[] args) throws IOException {
// 创建发送端Socket对象
DatagramSocket ds = new DatagramSocket();
// 自己封装键盘录入数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line=br.readLine())!=null){
if(line.equals("ending")){
break;
}
// 数据打包
byte[] b = line.getBytes();
DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getByName("uos-pc"),10086);
// 调用DatagramSocket对象方法发送数据
ds.send(dp);
}
// 释放资源
ds.close();
}
}
3. Java使用UDPJ接收数据代码
四步
(1) 创建接收端Socket对象
(2) 创建DatagramPacket数据包,接收数据
(3) 调用DatagramSocket对象方法接收数据
(4) 解析数据
(5) 释放资源
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UDPReceiveTest {
public static void main(String[] args) throws IOException {
// 创建Socket对象接受数据,需指定端口
DatagramSocket ds = new DatagramSocket(10086);
while(true) {// 发送端一直发送,故用循环接收
// 创建数据包,接收数据
byte[] b = new byte[1024];
DatagramPacket dp = new DatagramPacket(b, b.length);
// 调用DatagramSocket对象方法接收数据
ds.receive(dp);
// 解析数据
System.out.println(new String(dp.getData(), 0, dp.getLength()));
}
// 关闭接收端
// ds.close();
}
}
4. 程序执行方法
启动UDPReceiveTest.java,然后启动UDPSendTest.java,并在控制台输入,即可。
全部评论 (0)
还没有任何评论哟~
