Bonjour,
Je dois via des sockets, envoyer des grandes chaines de caractères.
Plusieurs clients peuvent se connecter au serveur et envoyer des messages.
Les clients sont composés de nombreux threads, qui peuvent chacun envoyer de nombreux messages.
Actuellement uniquement la méthode sendMessage est synchronisée :
sendMessage(String message) {
output stream (du socket) . write.... (message.toString() ou message.getBytes()...)
}
Je ne vois pas bien comment faire celà efficacement.
Soit je tente d'envoyé le message d'un coup (ex : avec un BufferedOutputStream out.write(message.getBytes()) et alors du coté serveur je dois connaitre la taille du message (en placant la taille au début du message ?). Mais j'ai peur que les performance ne soient affectées.
(En passant, l'output stream et le socket vont tout envoyé d'un coup ou par packet ?)
Sinon, je peux envoyé par packet de 1000 bytes par exemple, mais je devrai alors rajouter un numéro du message afin que le serveur sache que le packet qu'il vient de recevoir appartient à un message spécifique.
Je désire évidement uniquement avoir une piste pour faire celà (quel input/output stream utiliser ? envoyé d'un coup ? par packet ? ... ?) coté implémentation je me débrouillerai
Merci d'avance,
Partager