老师 下面的这个this.a = a this.a是不是这个构造器里面的int a,右边的a是上面的成员变量a?
package com.java; import java.io.Serializable; /** * 当该对象需要在网络上传输时,一定要实现Serializable接口 */ public class Person implements Serializable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } } package com.java; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; public class ObjectTypeServer { public static void main(String[] args) { DatagramSocket datagramSocket = null; ObjectInputStream objectInputStream = null; try { //创建服务端接收数据的对象 datagramSocket = new DatagramSocket(9999); //创建缓冲区 byte[] b = new byte[1024]; //创建数据报包对象-->对客户端传输过来的数据进行包装 DatagramPacket dp = new DatagramPacket(b,b.length); //接收客户端的数据 datagramSocket.receive(dp); //对接收的内容做类型转换 把拿到的字节数组转成字节数组流对象, // 在通过对象输入流对象把数据基于对象形式传输进来 objectInputStream = new ObjectInputStream(new ByteArrayInputStream(dp.getData())); System.out.println(objectInputStream.readObject()); }catch (Exception e){ e.printStackTrace(); }finally { if (datagramSocket!=null){ datagramSocket.close(); } if (objectInputStream!=null){ try { objectInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } } package com.java; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; public class ObjectTypeClient { public static void main(String[] args) { DatagramSocket datagramSocket = null; ByteArrayOutputStream bos =null; ObjectOutputStream oos= null; try { Person p = new Person(); p.setName("小于"); p.setAge(18); bos=new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(p); //将Person对象转换为字节数组 byte[] arr = bos.toByteArray(); //创建数据报 将数据进行包装传入服务端 DatagramPacket dp = new DatagramPacket(arr,arr.length,9999); //创建给服务端发送消息的对象 datagramSocket = new DatagramSocket(8888); datagramSocket.send(dp); }catch (Exception e){ e.printStackTrace(); }finally { if (datagramSocket!=null){ datagramSocket.close(); } if (bos!=null){ try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (oos!=null){ try { oos.close(); } catch (IOException e) { e.printStackTrace(); } } } } } java.lang.IllegalArgumentException: illegal length or offset at java.base/java.net.DatagramPacket.setData(DatagramPacket.java:267) at java.base/java.net.DatagramPacket.<init>(DatagramPacket.java:84) at com.java.ObjectTypeClient.main(ObjectTypeClient.java:26)
不知道哪出了问题,老师看一下
老师,我搞定啦 !!!!!不好意思,没看到后面,先自己打了
老师,为什么分数不显示出来?
ResourceBundle
这个在哪里讲了呢,感觉映像好模糊
那这里的话我应该怎么写然后把name输出啊?
这是什么问题
接受不了假设修正法,后面还有吗,突然不想学下去了
不是说编译的时候会跳过注释,怎么会出现乱码????
说不存在?
安装在哪个位置呢?
老师我的IDEA版本不一样,用的JDK13。问下为啥敲一些依赖无法自动提示,刚开始是红色的。
老师你好!为什么我的会抛出错误呢?
老师,for循环有for x,y in list()这种表达,那是否能循环多个元素,比如:for a,b,c,d in list() 这样呢?
老师你好,我分区后界面没显示分区线
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637