Java - espacios reemplazados por saltos de linea en cadena readUTF()

 
Vista:
sin imagen de perfil

espacios reemplazados por saltos de linea en cadena readUTF()

Publicado por javier (14 intervenciones) el 30/03/2022 01:44:30
hola estoy haciendo una app que usa sockets para comunicarse, ya logre conectar los sockets del server y el cliente y el problema es cuando envio cadenas, cuando las imprimo en consola me las imprime mal, pone un salto de linea en cada espacio de la cadena por ejemplo si envio "hola que tal" imprime
"hola
que
tal"
y asi con todas las cadenas, aqui les dejo el codigo haber que estoy haciendo mal.

server:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
 
 
 
public class Principal{
 
	public ServerSocket serverSock;
	public Socket so;
	DataInputStream entrada;
 
	public Principal() {
		try {
 
			serverSock = new ServerSocket(1234);
			System.out.println("Servidor ejecutandose");
 
 
			System.out.println("esperando cliente");
			so = serverSock.accept();
			System.out.println("cliente conectado");
 
			entrada = new DataInputStream(so.getInputStream());
 
 
			while(true) {
				//System.out.println(entrada.readUTF());
				//JOptionPane.showMessageDialog(null,entrada.readUTF());
			}
 
 
		} catch (IOException e) {
			e.printStackTrace();
		}//tryCatch1
 
	}
 
	public static void main(String[] args) {
		Principal p = new Principal();
 
 
	}
 
}

cliente:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
 
import javax.swing.JOptionPane;
 
public class Cliente {
 
	DataOutputStream salida;
	Socket so;
	Scanner sc = new Scanner(System.in);
 
	public Cliente() throws UnknownHostException, IOException {
 
		so = new Socket("192.168.0.102",1234);
 
		salida = new DataOutputStream(so.getOutputStream());
 
		while(true) {
 
			String dato = sc.next();
			salida.writeUTF(dato);
		}
 
 
	}
 
	public static void main(String[] args) throws UnknownHostException, IOException {
		Cliente p = new Cliente();
	}
 
}

Estuve averiguando en google y no sale nada de nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

espacios reemplazados por saltos de linea en cadena readUTF()

Publicado por Tom (1831 intervenciones) el 30/03/2022 11:46:00
https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html
"A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.

https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#next--
"A complete token is preceded and followed by input that matches the delimiter pattern"

Supongo que no es necesario añadir que println() añade un salto de línea al final ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar