今天联系这个通信,接收端总是接收不到数据!排除代码本身有可能出现的错误,比如地址,数据宝包(我称它为数据宝宝)等等自己粗心的错误后还是不行,我查看各种方法,比较多的是让关闭防火墙,我跟着百度教程关闭后还是不行,最后突然发现,因为两个main方法,发送端和接收端各一个,所以控制台会有2个,我点开的是发送端的!!!
代码如下
//发送端
public class SendTest {
public static void main(String[] args) throws IOException {
//创建socket对象
DatagramSocket ds = new DatagramSocket();
//创建数据宝宝
byte bys [] = "你好,java".getBytes();
DatagramPacket dp = new DatagramPacket(bys, bys.length, InetAddress.getByName("192.168.176.120"), 7878);
//发送
ds.send(dp);
//关闭socket
ds.close();
}
}
//接收端
public class ReceiveTest {
public static void main(String[] args) throws IOException {
//创建socket对象
DatagramSocket ds = new DatagramSocket(7878);
//创建数据宝宝
byte bys[] = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//接收
ds.receive(dp);
//解析
System.out.println(new String(dp.getData()));
//关闭socket
ds.close();
}
}
运行结果:就是箭头这,会有2个窗口,哭了,想我zzy一世英名毁在这!!!