UDP通信模式
数据包对象
DatagramPacket
管道对象:
DatagramSocket
发送和接收数据的方法:
send:void
receive:void
示例:
服务端
package UDP;
public class Serve{
public static void main(String args[]){
/*1.创建管道的一端*/
DatagramSocket socket = new DatagramSocket();//发送端的端口随机分配即可,现在还不需要接收客户端的信息。
/*2.创建数据包*/
byte[] buffers = "send message".getBytes();
/*
@parm 1 :数据存储的地方
@parm 2 :最大存储的长度
@parm 3 :发送的IP地址
@parm 4 :发送的IP地址对应的端口号
*/
DatagramPacket packet = new DatagramPacket(buffers,buffers.length,InetAddress.getLocalHost(),8888);
/*3.发送数据*/
socket.send(packet);
}
}
客户端
package UDP;
public class Client{
public static void main(String args[]){
/*1.创建管道的另一端*/
DatagramSocket socket = new DatagramSocket(8888);
/*2.创建数据包*/
byte[] buffers = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffers,buffers.length);
/*3.发送数据*/
socket.receive(packet);
/*4.打印数据*/
String res = new String (buffers,0,packet.getLength());
System.out.println(res);
/*获取发送端的ip和端口 */
System.out.println(packet.getSocketAddress().toString());
/*获取端口信息 */
int port = packet.getPort();
System.out.println(port);
}
}
这样运行两个文件即可实现通信。(这个是在本地)