2013-01-25 3 views
1

en Multicasting le MulticastSocket reçoit un DatagramPacket:comment éviter la limite de la taille de la mémoire tampon dans Java Multidiffusion?

buffer = new byte[BUFFER_SIZE]; 
packet = new DatagramPacket(buffer, BUFFER_SIZE); 
socket.receive(packet); 

donc je dois faire un tableau d'octets avec une longueur spécifique et je ne aime pas ça comme limite la taille des données qui peuvent être transférées sur mon réseau. est-il possible dans Multicasting pour éviter cette limite?

Répondre

1

Le réseau limite déjà la taille de transfert. Les tailles de tampons dans votre programme sont le moindre de vos soucis. La limite généralement acceptée pour les datagrammes UDP sur un réseau que vous ne contrôlez pas entièrement est de 534 octets.

+0

mais si vous créez un serveur ServerSocket pour accepter les connexions entrantes et recevoir et envoyer des données via ObjectInputStream et ObjectOutputStream, vous n'avez pas besoin de créer de tampon pour limiter la taille du transfert. .vrai? – Soheil

+1

@Sohell Bien sûr, mais c'est TCP. Pas UDP. – EJP

+0

pensez-vous qu'il est raisonnable de faire un buffer de taille 100M pour permettre le transfert des fichiers de taille maximale de 100M sur ce réseau UDP? – Soheil

Questions connexes