服务端用包装流发送数据,客户端只能用同样的包装流接收数据么?
比如:
ServerSocket服务端向客户端发送消息:
ServerSocket socketServer= new ServerSocket(8090);
Socket socket =socketServer.accept();
OutputStream out = socket.getOutputStream();
DataOutputStream dOut = new DataOutputStream(out);
dOut.writeUTF("Hello Universe!");
dOut.close();
客户端接收:
Socket socket = new Socket("localhost",8090);
InputStream in = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String msg = br.readLine();
System.out.println(msg);
接收到的数据前面会多一个乱码:Hello Universe!
如果客户端也用DataOutputStream接收就没问题!
这是为什么?
那如果设计服务端的时候,是不是最好用OutputStream的write()输出数据,因为不确定
客户端的API会用什么包装流接收?