データグラムソケット経由で整数配列を送信しようとします。これを達成する最良の方法は何ですか? MY送信コードは次のとおりです。int配列は、Javaでデータグラムソケットプログラミングで送信および受信
public void sendObj(Object obj) {
try{
byteArr = new ByteArrayOutputStream();
objOut = new ObjectOutputStream(byteArr);
objOut.writeObject(obj);
byte[] b = byteArr.toByteArray();
DatagramPacket dgram = new DatagramPacket(b, b.length, InetAddress.getByName("230.0.0.1"), 4446); // multicast
socket.send(dgram);
System.out.println("Package is sent!");
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}
}
と受信コードは次のとおりです。
byte[] b = new byte[65535];
ByteArrayInputStream b_in = new ByteArrayInputStream(b);
DatagramPacket dgram = new DatagramPacket(b, b.length);
socket.receive(dgram); // blocks
ObjectInputStream o_in = new ObjectInputStream(b_in);
Object o = o_in.readObject();
dgram.setLength(b.length); // must reset length field!
b_in.reset(); //
は、しかし、私はそれが私達は基本的な変更によって、その問題を解決し、未知のヘッダ値00000
bの値を決して初期化していないと思います。またはbyteArr – Kevin
はい、あなたは正しいと信じています... –
この質問は今解決されましたか? – daveb