UDP通信协议⽰例
UDP的通讯与TCP的不同,UDP使⽤DatagramPacket和DatagramSocket:DatagramPacket表⽰存放数据的数据报,DatagramSocket表⽰接受或发送数据报的套接字.TCP使⽤ServerSocket和Socket。
UDP⽰例源码(注释很详细):
1.发送UDP数据报的⼀端,假设为server:
public class UDPServerDemo {
public static void main(String[] args) {
String info = "我是帅到被⼈砍的Mr Zhang"; //要发送的信息
byte[] bytes = Bytes(); //字节数组
//封装⼀个udp数据包
try {
DatagramPacket dp = new DatagramPacket(
bytes,//数据包数据
0,//分组数据偏移量
bytes.length,//长度
通信协议8000//⽬的端⼝号
);
//DatagramPacket表⽰存放数据的数据报,DatagramSocket表⽰接受或发送数据报的套接字
DatagramSocket socket = new DatagramSocket(9000);//本程序端⼝
socket.send(dp); //发送⽤send()即可
socket.close(); //记得关闭socket
} catch (UnknownHostException | SocketException e) {//某些异常不可以放在⼀起的
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
2.接收数据报的⼀端,假设为client:
public class UDPClientDemo {
public static void main(String[] args) {
byte[] bytes = new byte[1024];
DatagramPacket dp = new DatagramPacket(bytes,bytes.length);//空的
try {
DatagramSocket socket = new DatagramSocket(8000);
System.out.println("正在接受数据中");
String s = new Data(),Length());
System.out.println(s);
socket.close();
} catch (SocketException e) {
e.printStackTrace();
}catch (IOException e1){
e1.printStackTrace();
}
}
}
3.程序效果图(要先运⾏client,使其处于接收数据的状态,再运⾏server):
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论