미리 만들어진 소프트웨어를 사용하여 내 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
감사합니다!
RFC가하는 대답한다 'CSeq'가 0이 아니고 단지 존재하고 증가되는 것을 요구하지 않습니다. 그러나 샘플에서는 0이 아닙니다. 나는 그것이 당신의 코드에 문제가 될 것이라고 생각한다. –
내 문제에 대한 답을 찾았지만 CSeq에 관해서는 CSeq이 0으로 시작했는지에 상관없이 서버가 상관하지 않는다고 동의합니다! –