한 번에 여러 연결을 처리하고 싶습니까? 이 경우 좋은 비동기 소켓 처리가 필요하며 연결 당 하나의 스레드를 피하십시오.
그렇지 않으면 한 번에 여러 바이트를 처리 할 수있는 XML 구문 분석기가 필요합니다. Expat이 표준 예입니다. Java 사용자라면 XP을 사용해보십시오. 이러한 유형의 XML 파서는 가능하면 이벤트를 실행하고 나머지가 도착할 때까지 부분 스탠자를 버퍼링합니다.
스 D 자이 종료 될 때 알림이 없음을 알리기 위해 실제로는 사실이 아닙니다. 중요한 것은 XML 스트림이 마치 문서 시퀀스 인 것처럼 처리하지 않는 것입니다. 다음의 의사 코드를 사용하십시오.
stanza = null
while parser has more:
switch on token type:
START_TAG:
elem = create element from parser state
if stanza is not null:
add elem as child of stanza
stanza = elem
END_TAG:
parent = parent of stanza
if parent is not null:
fire OnStanza event
stanza = parent
이 접근법은 이벤트 기반 또는 끌어 오기 구문 분석기에서 작동합니다. 하나의 상태 값만 유지하면됩니다. 물론 속성, 문자 데이터, 엔티티 참조 (예 : & amp 등)를 처리하고 stream : stream 태그를 특수하게 사용해야하지만 시작해야합니다.
원본을 보는 것이 나에게 상당히 유용하지만,이 경우 데이터의 선형성을 처리하는 데 필요한 정보가 필요합니다. 어쨌든 고마워, . –