发送端
MulticastSocket s ;
Message m = new Message();
if (m != null) {
try {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(5000);
ObjectOutputStream os = new ObjectOutputStream(new BufferedOutputStream(byteStream));
os.writeObject(m);
os.flush();
byte[] sendBuf = byteStream.toByteArray();
os.close(); DatagramPacket data = new DatagramPacket(sendBuf,sendBuf.length, group, 6789);
s.send(data);接收端
buf = new byte[100];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
try {
while (true) {
s.receive(recv);
str = new String(recv.getData()).trim();
System.out.println(str);
// System.out.println("2222222222");
// System.out.println(str);
Message m =new Message();
try {
ByteArrayInputStream byteStream = new ByteArrayInputStream(buf);
ObjectInputStream os = new ObjectInputStream(
byteStream);
System.out.println("1111111111111");
m = (Message)os.readObject();
System.out.println("3333333333");
m.Message();
m.putOut();
byteStream.close();
os.close();
m.putOut();
} catch (ClassNotFoundException e) {
System.out.println(e.getStackTrace());
System.out.println("Error loading file:");
System.out.println(e.getMessage());
}接收端 反序列化中有错误,我测试的是 m = (Message)os.readObject();执行不下去了,到底是为什么?
MulticastSocket s ;
Message m = new Message();
if (m != null) {
try {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(5000);
ObjectOutputStream os = new ObjectOutputStream(new BufferedOutputStream(byteStream));
os.writeObject(m);
os.flush();
byte[] sendBuf = byteStream.toByteArray();
os.close(); DatagramPacket data = new DatagramPacket(sendBuf,sendBuf.length, group, 6789);
s.send(data);接收端
buf = new byte[100];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
try {
while (true) {
s.receive(recv);
str = new String(recv.getData()).trim();
System.out.println(str);
// System.out.println("2222222222");
// System.out.println(str);
Message m =new Message();
try {
ByteArrayInputStream byteStream = new ByteArrayInputStream(buf);
ObjectInputStream os = new ObjectInputStream(
byteStream);
System.out.println("1111111111111");
m = (Message)os.readObject();
System.out.println("3333333333");
m.Message();
m.putOut();
byteStream.close();
os.close();
m.putOut();
} catch (ClassNotFoundException e) {
System.out.println(e.getStackTrace());
System.out.println("Error loading file:");
System.out.println(e.getMessage());
}接收端 反序列化中有错误,我测试的是 m = (Message)os.readObject();执行不下去了,到底是为什么?
buf = new byte[5000];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
try {
while (true) {
s.receive(recv);
Message m =new Message();
try {
ByteArrayInputStream byteStream = new ByteArrayInputStream(recv.getData());
ObjectInputStream os = new ObjectInputStream(byteStream);
System.out.println("1111111111111");
m = (Message)os.readObject();
System.out.println("3333333333");
m.Message();
m.putOut();
byteStream.close();
os.close();
m.putOut();
} catch (ClassNotFoundException e) {
System.out.println(e.getStackTrace());
System.out.println("Error loading file:");
System.out.println(e.getMessage());
}