2017-02-24 4 views
-1

J'ai un code java pour le chat en groupe. Je veux envoyer un fichier à tous les clients connectés au serveur. Si j'utilise un PrintWriter pour le mécanisme de discussion, aurai-je besoin d'autres choses comme OutputStream pour le transfert de fichiers? Existe-t-il une autre méthode de transfert de fichiers? Pouvons-nous utiliser les deux?Comment puis-je ajouter un transfert de fichier à un chat en groupe?

+0

Des informations supplémentaires sont nécessaires. Avez-vous une sorte de service sur le serveur? Si c'est un service de repos, est-ce que Base64 peut encoder le fichier et l'envoyer au serveur? Utilisez-vous des sockets pour votre programme? – Ali

+0

@Ali -Oui J'utilise des sockets dans mon programme. Le serveur est multithread et crée un thread pour chaque client. Je reçois le OutputStream d'ici: public ClientHandler (Socket clientSocket, utilisateur PrintWriter) { sock = clientSocket; InputStreamReader isReader = new InputStreamReader (sock.getInputStream()); reader = new BufferedReader (isReader); OutputStream os = sock.getOutputStream(); cOutputStreams.add (os); Même lorsque j'utilise OutputStream pour transférer un fichier .pdf du serveur, j'ai des problèmes car seul le fichier 0KB arrive du côté client. – NewToJava

+0

Personnellement, je n'utiliserais pas InputStream/OutputStream dans une application de discussion de groupe. Vous auriez besoin de quelque chose pour spécifier quel fichier est envoyé, quel est son type et quel (s) destinataire (s) devrait être. Un service de repos doit être créé pour gérer l'envoi et la réception de messages. Vous n'aurez pas besoin de vous inquiéter si un lecteur/enregistreur ou InputStream/OutputStream doit être utilisé. – Ali

Répondre

0

Les classes Lecteur/Enregistreur sont utilisées avec caractère. InputStream/OutputStream sont utilisés avec des octets. Selon le type du fichier, vous devrez utiliser un Writer ou un OutputStream. Si vous recevez et envoyez des fichiers texte, utilisez Reader/Writer; Si vous recevez et envoyez des images, des fichiers zip, pdfs (fichiers binaires), utilisez InputStream/OutputStream.

Vérifiez les classes sous le package java.io pour les différents types de Reader/Writer et InputStream/OutputStream pour voir lequel est adapté à vos besoins.

+0

-Si je dois utiliser les deux est-ce possible? Dois-je en fermer un pour en utiliser un autre? – NewToJava