2010-06-02 6 views
0

특정 포트를 통해 데이터를 보내는 장치가 있습니다. 데이터는 XML 형식입니다.TCP 포트 소켓에서 XML 데이터 읽기

이제 데이터를 수신하고 화면에 데이터를 출력하는 작은 콘솔 응용 프로그램을 만들었습니다.

내 계획은 XML 데이터를 deserialize하거나 데이터베이스에 insert 문을 작성합니다.

1) 기기에서 매초마다 데이터를 전송합니다 (데이터를 전송할 수있는 경우). 2) 기기에서 전송할 데이터의 양을 말할 수 없습니다. 나는 느슨한 어떤 정보도없이 모든 데이터를 캡처해야합니다 수있는 방법

..

논의 할 준비

? C# 또는 XML 문서 당 VB.NET

+0

TCP는 데이터 손실을 막기 위해 명시 적으로 설계되었습니다. 왜 그것이 당신을 위해 일하지 않을 것이라고 생각하는지 설명해야합니다. 1 초는 대략 20 억 CPU 사이클입니다. –

답변

1

에서

CODE, 당신은 당신이 일치하는 루트 끝 요소를 찾을 때까지 소켓 스트림에서 지속적으로 읽을 필요가있을 것이다;

<?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement> 

완료하고 다음 문서를 기다리십시오.

+0

코드 스 니펫이 있습니까? –

0

한스 패전트 (Hans Passant)가 지적했듯이, TCP는 정확한 전달을 위해 설계되었습니다. 연결 중에 전송 된 모든 tcp 데이터 (사례와 비슷한 소리)를 받으려면 내 대답의 코드 C# performance methods of receiving data from a socket?을 사용하십시오.

바이트를 모두 받으면 텍스트로의 일반적인 변환을 할 수 있습니다. string stringData = Encoding.UTF8.GetString(bytes);