2009-05-18 6 views
-3

Je peux envoyer de petites données en utilisant java nio.problème avec l'écriture de grandes données en utilisant java nio socket canal

Mais si je veux envoyer une très grande quantité de données, mon canal de socket ne fonctionne pas correctement.

message = "very large data"+"\n"; 
ByteBuffer buf = ByteBuffer.wrap(message.getBytes()); 
int nbytes = channel.write(buf); 

toutes les données sont envoyées. Je veux lire des données du serveur ainsi j'emploie BufferedInputStreaReader.readLine(); Dans ce cas, je ne reçois pas d'erreur aussi je ne peux pas récupérer l'une des données que je vous ai envoyé

Merci Deepak

+1

Avez-vous une exception? –

+1

Vous allez devoir expliquer ce qui ne fonctionne pas ... Exception, trace de pile, quelque chose ... –

Répondre

1
write() 

Returns: 
The number of bytes written, possibly zero 

Ecrire est pas garanti d'écrire tout votre buf. Vous devez vérifier combien a été écrit et faire une autre écriture. (Attendez probablement jusqu'à ce que vous puissiez réécrire.)

Vous devriez également rechercher un bon tutoriel java.nio ... Si vous avez besoin d'une API plus simple, utilisez plutôt le blocage io dans java.io Qu'est-ce que vous entendez par "ne fonctionne pas bien"?

Questions connexes