5

事前に作成されたソフトウェアを使用して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();
    }
}

}

これがwiresharkのスクリーンショットです: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

ありがとう!

4

1 に答える 1

5

わかりました。簡単に言うと、リクエストは次のようになります。

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

それ以外の

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

最後に新しい行を追加するだけで、サーバーが応答します

于 2012-08-02T17:34:35.410 に答える