서버의 들어오는 데이터를 문자열로 검색 한 다음 가능한 한 데이터를 버퍼링하지 않고 다른 문자열로 바꿔야하는 상황을 처리해야합니다.네트워크 스트림의 청크에서 문자열 일치
들어오는 데이터는 여러 청크가 될 수 있습니다. 따라서 주어진 문자열이 여러 청크로 분할 될 가능성이 있습니다. 예를 들어 문자열이 'abc'이면 청크는 1 : 'aaab'& 청크 2 : 'cbbb'일 수 있습니다. 그런 다음 첫 번째 청크에서 'a'를 일치시킨 후 다음 청크에서 'b'와 일치하는 것이 있는지 기다려야합니다. 즉, 이제 첫 번째 청크를 버퍼링해야합니다. 또는 적어도 일치하는 첫 번째 청크의 문자는 두 번째 청크에 문자열의 나머지가 포함되어 있는지 파악할 때까지 버퍼링해야합니다.
그렇지 않으면 첫 번째 청크로 돌아가 문자 b에서 일치를 다시 시작해야합니다.
응용 프로그램 제약 조건을 감안할 때 버퍼링은 가능한 한 피해야합니다. 최소한의 버퍼링으로이를 수행하는 방법이 있습니까? 나에게 이것은 여러 상황에서 직면하게 될 일반적인 문제인 것처럼 보이지만 불행히도 검색 후 해결책이나 방향을 찾지 못했습니다.
청크를 제외하고는 다른 경계가 있습니까? 문자열이 여러 청크로 확장 될 수 있습니까? –
아니요, 실제 메시지를 보내기 전에 보낼 메시지 길이 이외의 경계는 없습니다. 예, 문자열은 여러 청크로 확장 될 수 있습니다. 답변 주셔서 감사합니다 – doon