1
私はBoost Asioを使って本当に小さなRTSPクライアントを実装しようとしています。 SETUP
にサーバがあり、PLAY
コマンドが送信され、その後、ある時点でTEARDOWN
が要求されます。シンプルなRTSPクライアント/例を実装する
私は実装自体に問題があります。接続自体については 私はその後、メッセージ自体は、このように処方されるTCPコネクション
tcp::resolver resolver(*io_service);
tcp::resolver::query query("192.168.0.42","554");
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::resolver::iterator end;
tcp::socket socket(*io_service);
boost::system::error_code error = boost::asio::error::host_not_found;
while (error && endpoint_iterator != end)
{
socket.close();
socket.connect(*endpoint_iterator++, error);
}
をしたいと思うように私はそれを行う:それは、私がこれを送信し、Wiresharkのでそれをキャッチした場合今
boost::asio::streambuf request;
std::ostream request_stream(&request);
request_stream << "DESCRIBE " << "rtsp://192.168.0.42/mpeg4?multicast/ RTSP/1.0\r\nCSeq: 1\r\n";
boost::asio::write(socket, request);
それをRTSPメッセージとして認識しません。
どうしたのですか?私はちょうど私のストリームで要求を間違って策定していますか?あるいは全く異なるタイプの接続を使用する必要がありますか?
シンプルなRTSPクライアントを実装する方法はありますか?私は何も見つけることができませんでした。 libcurl
のような他のライブラリの使用を提案しないでください。私はそれを自分で実装する必要があります。
Ha、oh my gosh、私はちょうどその新しい行を欠いていました... – Toby