De l'écriture à la Prise outputStream w/o de la fermeture
J'aimerais écrire des messages sur le serveur.
À chaque fois, pour le tramsmitting seulement, je suis à la fermeture de la outputStream et le rouvrir quand j'ai envoyer le message suivant.
os.write(msgBytes);
os.write("\r\n".getBytes());
os.flush();
os.close();
Comment puis-je garder cette Prise de OutputStream, os, ouvert et toujours être en mesure d'envoyer le message?
Grâce.
OriginalL'auteur eyal | 2010-05-13
Vous devez vous connecter pour publier un commentaire.
Me manque quelque chose ici. Si vous n'appelez pas à proximité, il ne va pas fermer. Par exemple,
OriginalL'auteur ZZ Coder
Dans la plupart des protocoles, le serveur accepte som sorte de symbole EOF. Envoyer un symbole, au lieu de fermer le flux de données.
Par exemple, les serveurs IRC interpréter "\r\n", comme la fin d'un message. Ce serait de 2 messages sur un ouvert OutputStream:
Aussi, vous devez envelopper votre outputStream avec DataOutputStream. Ce wrapper qui crée le plus de portable de sortie. Plaine OutputStream peut causer des problèmes avec certains types de données primitifs si le serveur et le client ont différentes architectures d'ordinateurs.
OriginalL'auteur rompetroll
Envelopper le
Socket
'sOutputStream
dans unPrintWriter
et d'appeler laPrintWriter
'sprintln
méthode.OriginalL'auteur Finbarr
J'ai trouvé le problème et il fixe sur le côté du client.
Sur le client, j'ai utilisé -
Cela signifie que le client attend jusqu'du serveur outputStream fermé, puis le traitement des données entrantes.
OriginalL'auteur eyal