socket read open getoutputstream from example datagramsocket and java sockets udp datagram

read - socket getoutputstream in java



DatagramPacket: ¿getData siempre devolverá el mismo búfer que se pasa? (1)

byte [] r = new byte[4096]; DatagramPacket dpr = new DatagramPacket(r, r.length); sock.receive(r);

Después de la receive , ¿ dpr.getData() & r siempre será el mismo?

Ejemplo: ¿Puedo usar directamente la matriz de bytes r o debo llamar a getData() para recuperar el búfer de nuevo?

Probándolo, demostró que era lo mismo, pero ¿está esto siempre garantizado?


byte [] r = new byte[4096]; DatagramPacket dpr = new DatagramPacket(r, r.length); sock.receive(r);

Eso debería ser sock.receive(dpr);

Después de la recepción, ¿dpr.getData () & r siempre será el mismo?

Sí. r fue suministrado al constructor como ''el búfer para mantener el datagrama entrante'', y getData() ''devuelve el búfer usado para recibir o enviar datos''.

es decir, ¿puedo usar directamente la matriz de bytes r o debo llamar a getData () para recuperar el búfer de nuevo?

Puedes usar la matriz de bytes, pero ¿por qué? Use getData() como todos los demás, sin olvidar también usar getOffset() y getLength() , en lugar de asumir que el datagrama llenó la matriz de bytes: por ejemplo, System.out.println(new String(datagram.getData(), datagram.getOffset(), datagram.getLength()));