2012-10-20 3 views
1

응용 프로그램에서 텍스트를 전송하는 경우 (예 : 클라이언트가 http 호출을하고 게시물 본문에 문자 메시지가있는 경우) 서버 측에서 어떻게합니까? 처음부터 끝까지 완전한 메시지를 받았을 때 알 수 있습니다. 즉,이 텍스트 스트림에서 단어의 수를 계산하려면 어떻게 할 수 있습니까? 정상적인 단어 계산은 상태 머신 종류의 접근법을 통해 수행됩니다. 여기에서는 공백을 추적하고 2 단어 사이의 공백에 대해 한 번만 증가시킵니다. 스트림의 단어를 다른 것으로 계산합니까? 어떻게?스트림의 단어 계산하기

+2

왜 다른가? 상태 시스템은 한 번에 한 문자 씩 가져옵니다. 스트림은 알고리즘에 문자를 하나씩 완벽하게 제공 할 수 있으므로 상태 시스템 알고리즘에는 아무런 문제가 없어야합니다. – dasblinkenlight

답변

3

그러면 처음부터 끝까지 전체 메시지를 받았을 때 서버 측에서 어떻게 알 수 있습니까?

EOF 문자는 메시지의 끝을 나타내고 클라이언트는 일반적으로 완료되면 스트림을 플러시하고 닫습니다. 이것이 서버가 클라이언트로부터의 전송이 끝났음을 알 수있는 방법입니다.

스트림의 단어를 조금씩 다르게 계산합니까?

문자열 원본이나 스트림에서 오는 문자 원본에 관계없이 문자열의 입력이 루프에서 끝나는 것을 제외하면 단어 수를 결정하는 논리는 동일하게 유지됩니다 카운터는 문자열의 길이에 도달하는 반면 스트림에서는 루프를 중지시키는 것이 EOF 문자입니다.

+2

완벽한 답변! – Jayy

+0

Vikdor, Java에서 EOF 문자는 어떻게 생겼습니까? – Phoenix