2012-07-31 4 views
4

미리 만들어진 소프트웨어를 사용하여 내 Rtsp 서버에 연결할 수 있지만 다음 코드 부분에서는 서버에서 응답을 얻을 수 없습니다. 연결이 성공하더라도 서버는 응답하지 않습니다. 여기에 와이어 샤크의 스크린 샷이다RTSP 서버에서 아무런 답도 얻을 수 없습니다

public class RtspClient { 

private Socket server; 
private InputStream is = null; 
private OutputStream os = null; 
private int seqid = 1; 
private String request, resp; 
private byte[] buffer = new byte[4096]; 
private int len = 0; 


public RtspClient(String rIp, int rPort) { 

    try { 
     //INIT 
     server = new Socket(rIp, rPort); 
     is = server.getInputStream(); 
     os = server.getOutputStream(); 
     System.out.println("Connected to "+ rIp + ":" + rPort); 

     //COMMUNICATION 
     Boolean isTalking = true; 
     while(isTalking == true) { 

      //sending request 
      String request = new String("OPTIONS * RTSP/1.0\r\nCSeq: 0\r\n"); 
      os.write(request.getBytes(), 0, request.length()); 
      System.out.println("Sent: "+ request); 
      ///////////////// 

      //getting response 
      len = is.read(buffer, 0, buffer.length); 

      if(len > 0) { 
       resp= new String(buffer, 0, len); 
      } 
      else { 
       resp = "empty"; 
      } 

      System.out.println("Received: "+ resp); 
      ////////////////// 
     } 
    } catch (UnknownHostException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

} : http://imageplay.net/img/tya22277766/Untitled.png

서버에서 응답이 있어야한다 :

RTSP/1.0 200 OK 
Supported: play.basic, con.persistent 
Cseq: 0 
Server: Wowza Media Server x.x.x.x buildxxx 
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, ANNOUNCE, RECORD, GET_PARAMETER 
Cache-Control: no-cache 

감사합니다!

+0

RFC가하는 대답한다 'CSeq'가 0이 아니고 단지 존재하고 증가되는 것을 요구하지 않습니다. 그러나 샘플에서는 0이 아닙니다. 나는 그것이 당신의 코드에 문제가 될 것이라고 생각한다. –

+0

내 문제에 대한 답을 찾았지만 CSeq에 관해서는 CSeq이 0으로 시작했는지에 상관없이 서버가 상관하지 않는다고 동의합니다! –

답변

4

좋아, 요청이 있어야한다, 그것이 짧은 만들려면 :

OPTIONS * RTSP/1.0\r\nCSeq: 0\r\n\r\n 

대신

OPTIONS * RTSP/1.0\r\nCSeq: 0\r\n\ 

간단히 끝에 새 줄을 추가하고 서버가

+0

이 방법이 효과적이었습니다.하지만 RTSP 요청이 왜 이렇게 효과가 있었는지 자세히 설명해주십시오. – skygeek

관련 문제