소켓을 사용하여 간단한 SNPP (Simple Network Paging Protocol) 클라이언트를 작성하려고합니다. 서버 간의 작은 불일치를 제외하면 모든 것이 잘 작동하는 것 같습니다.소켓에서 단일 버퍼로 청크 데이터 수신
명령을 보낼 때 일반적으로 데이터의 단일 청크 인 응답을 읽어야합니다. 그러나 Sprint의 SNPP 서버는 두 부분으로 응답을 보냅니다. 데이터의 첫 번째 청크는 상태 코드의 첫 번째 숫자입니다. 두 번째 청크는 나머지 부분입니다. 나는 "220 게이트웨이 준비"응답을받지하려고 할 때 예를 들어,이 같은 도착 :
2
내가 나머지 검색하는 또 다른 빈 명령을 보낼 수 있습니다 순간을 위해
20 Gateway ready
을 내가 사용하고 있습니다 :
byte[] buffer = new byte[256];
socket.Receive(buffer);
어떻게 내가 데이터의 각 청크에 대해 별도의 버퍼를 할당하지 않고 명령을 실행 한 후 사용 가능한 모든 데이터를받을 수 있는지 확인 할 수 ?
모든 크기의 청크를 처리하기 때문에이 솔루션이 마음에 들었습니다. 그러나 첫 번째 응답을받은 후 응용 프로그램이 새 데이터가있을 때까지 응답을 중지합니다. 디버거는 while 조건에서 멈춘다는 것을 보여줍니다. –