Java 使用套接字编程创建RTMP连接

Java 使用套接字编程创建RTMP连接,java,sockets,rtmp,amf,rtmps,Java,Sockets,Rtmp,Amf,Rtmps,我需要使用java套接字编程创建RTMP客户端。我阅读文件和文件 。我已经通过java套接字编程成功地执行了握手 现在,下一步是向服务器发送“connect”命令。我正在创建文档中给出的RTMP数据包,然后使用DataOutputStream将它们写入输出流。根据给定的细节,“连接”packect的主体应如下所示: (Invoke) “connect” (Transaction ID) 1.0 (Object1) { app: “sample”, flashVer: “MAC 10,2,

我需要使用java套接字编程创建RTMP客户端。我阅读文件和文件

。我已经通过java套接字编程成功地执行了握手

现在,下一步是向服务器发送“connect”命令。我正在创建文档中给出的RTMP数据包,然后使用DataOutputStream将它们写入输出流。根据给定的细节,“连接”packect的主体应如下所示:

    (Invoke) “connect”
(Transaction ID) 1.0
(Object1) { app: “sample”, flashVer: “MAC 10,2,153,2”, swfUrl: null,
              tcUrl: “rtmpt://127.0.0.1/sample “, fpad: false,
              capabilities: 9947.75 , audioCodecs: 3191, videoCodecs: 252,
              videoFunction: 1 , pageUrl: null, objectEncoding: 3.0 }
我无法理解如何将上面的内容转换为AMF3编码的字节。我应该只需要AMF编码“connect:”,1.0。。。并写入OutputStream。另一个主要问题是如何对对象(给定的键值对)进行编码。我应该先编码并写入套接字键,然后再写入AMF编码值吗。是否需要在两对之间包含&运算符,比如http协议的主体。我做了深入的研究,但找不到创建此数据包并写入套接字的代码

请建议。
谢谢。

为什么你用C++ ObjuleC C来标注问题?你的问题和那些标签之间有什么关系?实际上问题直接与任何语言的socket编程有关。无论是使用java、C++还是C++…这就是我贴标签的原因。