2012-08-17 2 views
0

나는 텔넷 클라이언트를 가지고로 정의한 루프 :자바 inputstream의 읽기되지 최고의 진수 바이트

while (true) { 
    int TEST = in.read(); 
    } 

모든 I는 입력의 "텍스트"수신 부분으로 잘 갈 것 같다 ...하지만 난에 대한 (매우 중요한 누락 나!) 선행 바이트.

64: a88f ffff 3034 3131 3032 3030 3030 3030 ¨...041102000000 
    80: 3030 322e 3031 3131 2e36 2e34 2020 3135 002.0111.6.4 15 
    96: 2e39 2e33 2020 3030 3132 30    .9.3 00120 

고지은 "FFFF": 그게 내가해야 할 주요 부분 (모든 전에 쓰레기 다음 TCP 통신의 일부) 는 여기에 내가 포트에 가고 무엇을보고의 스 누프입니다.

그러나 "TEST"변수를 인쇄 할 때 "041102 ... etc"만 볼 수 있습니다.

BOMInputStream도 사용해 보았지만 그 중 하나를 얻을 수 없습니다.

=> 어떻게받을 수 있습니까?

도움 주셔서 감사합니다.

+0

"포트에서 무슨 일이 일어나고 있는지 snooping"하시겠습니까? –

+0

Solaris snoop 명령 사용 : snoop -x 0 port XXXX – jerome

+0

실제 데이터가 아닌 패킷 헤더의 잠재적 인 부분입니까? 아니면 텔넷 헤더일까요? (보통의 네트워크 연결이 아니라 텔넷 클라이언트를 사용해야합니까?) –

답변

2

TelnetClient 인스턴스가 제공하는 입력 스트림은 데이터 문자만을 제공합니다. Telenet 프로토콜 시그널링 물건은 코드에 의해 필터링되었습니다.

신호 정보, 옵션 등을 얻으려면 TelnetClient API에서 다른 방법을 사용해야합니다. 가능한 한 시도 할 수있는 다양한 접근 방식이 있습니다. 예를 들어 옵션 처리기 또는 알림 처리기를 등록하거나 "스파이 스트림"을 등록 할 수 있습니다.

1

실제로 모든 데이터를 보려면 TelnetClient 대신 Socket을 사용해야합니다.

+0

고마워요. 나는 월요일 아침에 그것을 시험 할 것이다. – jerome