AMF0 parsing, chunk merging
This commit is contained in:
parent
6bff69af30
commit
d642d2f111
5 changed files with 238 additions and 16 deletions
40
Connector_RTMP/handshake.cpp
Normal file
40
Connector_RTMP/handshake.cpp
Normal file
|
@ -0,0 +1,40 @@
|
|||
struct Handshake {
|
||||
char Time[4];
|
||||
char Zero[4];
|
||||
char Random[1528];
|
||||
};//Handshake
|
||||
|
||||
void doHandshake(){
|
||||
srand(time(NULL));
|
||||
char Version;
|
||||
Handshake Client;
|
||||
Handshake Server;
|
||||
/** Read C0 **/
|
||||
fread(&(Version), 1, 1, stdin);
|
||||
/** Read C1 **/
|
||||
fread(Client.Time, 1, 4, stdin);
|
||||
fread(Client.Zero, 1, 4, stdin);
|
||||
fread(Client.Random, 1, 1528, stdin);
|
||||
/** Build S1 Packet **/
|
||||
Server.Time[0] = 0; Server.Time[1] = 0; Server.Time[2] = 0; Server.Time[3] = 0;
|
||||
Server.Zero[0] = 0; Server.Zero[1] = 0; Server.Zero[2] = 0; Server.Zero[3] = 0;
|
||||
for (int i = 0; i < 1528; i++){Server.Random[i] = (rand() % 256);}
|
||||
/** Send S0 **/
|
||||
fwrite(&(Version), 1, 1, stdout);
|
||||
/** Send S1 **/
|
||||
fwrite(Server.Time, 1, 4, stdout);
|
||||
fwrite(Server.Zero, 1, 4, stdout);
|
||||
fwrite(Server.Random, 1, 1528, stdout);
|
||||
/** Flush output, just for certainty **/
|
||||
fflush(stdout);
|
||||
/** Send S2 **/
|
||||
fwrite(Client.Time, 1, 4, stdout);
|
||||
fwrite(Client.Time, 1, 4, stdout);
|
||||
fwrite(Client.Random, 1, 1528, stdout);
|
||||
/** Flush, necessary in order to work **/
|
||||
fflush(stdout);
|
||||
/** Read and discard C2 **/
|
||||
fread(Client.Time, 1, 4, stdin);
|
||||
fread(Client.Zero, 1, 4, stdin);
|
||||
fread(Client.Random, 1, 1528, stdin);
|
||||
}//doHandshake
|
Loading…
Add table
Add a link
Reference in a new issue