//发送端程序
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class UdpSocket {
/**
* @Title: main
* @Description: TODO(描述这个方法的作用)
*
* 持续向服务端发送udp数据包
* 只管发送,不管成不成功,udp就是无连接通讯
*/
public static void main(String[] args) throws IOException{
//获取主机ip
InetAddress inet=InetAddress.getByName("127.0.0.1");
System.out.println(inet);
//创建对象datagramsocket,数据的接受和发送的对象
DatagramSocket ds=new DatagramSocket();
Scanner sc=new Scanner(System.in);
byte[] data=null;
System.out.println("请输入内容。。。");
while (true) {
String massage=sc.nextLine();
data=massage.getBytes("gbk");
//将数据打包,数据包,数据包长度,ip地址,端口号
DatagramPacket packet=new DatagramPacket(data, data.length,inet,6000);
ds.send(packet);
}
//ds.close();
}
}
//服务端程序
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpRecevie {
/**接受控制台的输入
* @Title:接受传输过来的数据
* @Description: TODO(描述这个方法的作用)
* 接受数据就像收快递一样,需要先去快递点获取快递包裹,然后将快递包裹拿回来拆解
* 起单据上可以获取到发送端的地址和端口信息
* */
public static void main(String[] args) throws IOException{
//接受数据包连接对象,端口一定对应
DatagramSocket dSocket =new DatagramSocket(6000);
byte[] data=new byte[1024];
while (true) {
//创建数据包对象
DatagramPacket packet =new DatagramPacket(data, data.length);
dSocket.receive(packet);
int length=packet.getLength();
String datas=new String(data,0,length,"gbk");
packet.getAddress();
System.out.println("服务端收到:"+datas);
}
//dSocket.close();
}
}