J'utilise la classe Java SocketChannel
pour une application client/serveur. Je peux envoyer et récupérer des données. Mais si mes données contiennent '\n'
alors je ne lis pas les données correctes. Par exemplecomment envoyer puis lire n en utilisant SocketChannel en Java
sending data = "Hi dear"
receiving data = "Hi dear"
sending data = "Hi dear\n\n i am fine"
receiving data = "Hi dear"
sending data = "Hi dear\\n\\n i am fine"
receiving data = "Hi dear\n\n i am fine"
ByteBuffer byteBuffer = ByteBuffer.allocate(BUFSIZE);
int nbytes = socketChannel.getChannel().read(byteBuffer);
J'utilise le décodage US-ASCII. Comment puis-je surmonter ce type de problème?
Merci, Deepak
Il convient également de mentionner que vous pouvez spécifier si le canal est en mode non bloquant .... –
Oui, le canal est en mode non bloquant. Veuillez revoir mon exemple une fois de plus. – Deepak
Cela dépend vraiment du type de socket. Une socket de flux (par exemple, TCP) n'a aucune limite de conservation, comme vous l'avez mentionné. Cependant, une socket de datagramme (f.e., UDP) concerne essentiellement les paquets transmis et reçus avec des limites explicites. –