나는 간단한 서버와 클라이언트 소프트웨어를 가지고있다. 서버에서 맥에서 실행하고 C에서 작성된 내 사용자 정의 코드는 소켓에서 readline을 에뮬레이트합니다.PrintStream Println은 diff 시스템에서 다르게 동작합니까?
클라이언트가 android 및 windows 컴퓨터 용으로 Java로 작성되었습니다. Println 호출에서 이상한 동작을 관찰하고 있습니다. 이 코드는 다음과 같습니다.
PrintStream ps = new PrintStream(clientSocket.getOutputStream());
JSONObject json = new JSONObject(responseMap);
String buffer = json.toString();
ps.println(buffer);
ps.flush();
Windows에서 실행될 때 println은 버퍼 문자열 다음에/r/n을 보냅니다. android에서 실행될 때 println은 버퍼 문자열 다음에/n을 전송합니다.
println의 동작이 OS/컴퓨터 전체에서 일관성이 없어야합니까?
아니요. 라인 엔딩은 플랫폼에 따라 다릅니다. –
@GregS 그럼 OS 별 또는 하드웨어 별입니까? – Ahmed
이것은 실제로 자바 설치와 관련이 있습니다. 그러나 실제로는 하드웨어 고유가 아닌 OS 고유의 것을 의미합니다. "라인"의 전체적인 개념은 운영체제마다 다르다. –