基于UDP协议的Socket编程
1.利用DatagramSocket发送数据包
2.利用DatagramPacket对象封装数据包
3.利用DataGramPacket处理数据包
4.利用DataGramPacket接收数据包
建立发送端,接收端
创建数据
建立数据包
调用Socket的发送接收方法
关闭SOcket
发送端与接收端是两个独立运行的程序
import java.io.IOException;
import java.net.*;
import java.nio.charset.StandardCharsets;
public class UDPSend {//发送端
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket();
byte[] msg = "最新的邮件来了。。。。".getBytes(StandardCharsets.UTF_8);
//创建数据包,即将发送出去的数据包,发送的内容,收获的ip,端口号,
DatagramPacket dp = new DatagramPacket(msg, 0, msg.length, InetAddress.getByName("localhost"), 9000);
//发送数据
ds.send(dp);
//关闭资源:socket
ds.close();
}
}
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UDPReceive {
public static void main(String[] args) throws IOException {//接收端
//1.创建DatagramSocket
DatagramSocket ds = new DatagramSocket(9000);
//2.创建Packet
byte[] temp = new byte[1024];
DatagramPacket dp = new DatagramPacket(temp, temp.length);
//3.接收数据
ds.receive(dp);
//发送方的主机名
String hostName = dp.getAddress().getHostName();
//发送方的端口号
int port = dp.getPort();
System.out.println("发送方的主机名是"+hostName+"发送方的端口号是"+port);
byte[] bytes = dp.getData();//获取接收到的内容
String msg=new String(bytes,0, dp.getLength());
System.out.println("发送过来的信息是:"+msg);
//4.关闭资源
ds.close();
}
}
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/275470.html