import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
//利用UDP发送自定义对象<服务端>
public class UDP_SendPersonObjectTypeServer {
public static void main(String[] args) {
try(DatagramSocket dgs=new DatagramSocket(9999)){
byte[] bb=new byte[1024];
DatagramPacket dgp=new DatagramPacket(bb, bb.length);
//接收数据
dgs.receive(dgp);
//类型转换
try(ObjectInputStream ois =new ObjectInputStream(new ByteArrayInputStream(dgp.getData()))){
Person p=(Person) ois.readObject();
System.out.println(p);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class UDP_SendPersonObjectTypeClient {
public static void main(String[] args) {
try(DatagramSocket dgst=new DatagramSocket(8888);
ByteArrayOutputStream bos=new ByteArrayOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(bos)){
//创建自定义对象
Person p=new Person();
p.setName("张三");
p.setAge(28);
//写出对象
oos.writeObject(p);
byte[] by= bos.toByteArray();
//将数据包装成datagrampacket对象
DatagramPacket dap=new DatagramPacket(by,by.length,new InetSocketAddress("127.0.0.1",9999));
//发送数据
dgst.send(dap);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
老师,请问我这里运行后服务端只收到了这个,是为什么
