J'utilise le concept de canal de communication et NIO pour lire les données du client.
Comment Socket Channel sait-il que la lecture d'un fichier est terminée?Comment SocketChannel sait-il que la lecture d'un fichier est terminée?
ByteBuffer byteBuffer = ByteBuffer.allocate(BUFSIZE);
int nbytes = socketChannel.getChannel().read(byteBuffer);
Je lis les données à la fois si les données est faible, mais si les données est grande, je lis les données en fragments et enfin obtenir les mêmes données maintenant, je veux savoir comment le canal ne comprend pour fin des données.
Y a-t-il un moyen pour moi de savoir quand la lecture du fichier est terminée?
Voir cet exemple NIOClient, il attend des caractères d'invite de terminaison ">>" spécifiques à l'application. C'est le marqueur end_of_packet. Vous pourriez implémenter un début similaire ou un début de chaque paquet avec une valeur de longueur de 4 octets. http://stackoverflow.com/questions/11745686/java-nio-client/27130710#27130710 – Whome