Rtmp TServerSocket [Résolu]

Messages postés
98
Date d'inscription
lundi 8 mars 2004
Dernière intervention
12 avril 2010
- - Dernière réponse : cs_askil2000
Messages postés
98
Date d'inscription
lundi 8 mars 2004
Dernière intervention
12 avril 2010
- 30 oct. 2008 à 10:19
Bonjour,

Je me lance dans une application Serveur utilisant le protocole rtmp.
La manip est de remplacer un serveur flash (Flash Media Server) par mon appli delphi, en utilisant le composant TServerSocket.

J'ai déjà réussi à connecter mon client (en flash) et suis confronté certe au cryptage, mais aussi à la méthode de connexion.

Si qq'un a une piste, un bout de code, ou un moyen de m'encourager ?

Fin de trame reception dans l'evenement OnRead:

¢· x�8;�7;©�2;>ÓW�4;Ä�7;•�5;�1A;Óã�4;ÀÁ6�15;¯üþ- ’»xÙ.�7;4Å “ 0ðñ &_ l]‚Bk�5;è�1; �2;�1E;B·�5;¤õúþC
 Œ!0�16;�F;Ü�6;r�1B;X�4;9�E;�2;g�14;�1;%ê�1;ó�10;ÿQ �6;!¿wL.½wbÿËÿÈþi þ¸�17;w„ÿUÿÚ£?ö>o0¼Õí�5;R{8Ö™�5;îþÇ
ô?…0�3;�1;ç�14;�2;�7;connect?ð�3;�3;app�2;�8;dossierfms/�8;flashVer�2; WIN
9,0,47,0�6;swfUrl�2;ìurl�5;tcUrl�2;$rtmp://ip:port/dossierfms/�4;fpad�1; audioCodecs@ƒ8Ã
videoCodecs@_ videoFunction?ð�7;pageUrl�2;�1D;url �2; pseudo�6;

<del></del>

<del></del><del></del><del></del>
�3;�1;3�14;�2;�1A;FCSimpleConnect.sp.connect�5;�2;
pseudoƒ�2;�1D;FCConnectionLight.lum.connect�5;@Ÿ@C�1;:�14;�2;�1B;FCSetBandwidth.band.connect�5;@°�1D;@°�1D;C;�14;�2;�1C;FCSetBandwidth.band.setRates�5;@°�1D;@°�1D;Ã�2;�1C;FCSetBandwidth.band.setRates�5;@°�1D;@°�1D;C3�14;�2;�1A;FCSimpleConnect.sp.connect�5;�2;
pseudoC�1;�19;�14;�2;
createStream@�5;C)�13;�16;FCAVPresence.webcam.av�1;C(�14;�2;�1B;FCAVPresence.webcam.connect�5;C6�14;�2;�1D;FCSimpleConnect.sp.changeName�5;�2;
pseudo <del></del><del></del><del></del>
C�7;ÖH�14;�2;�6;_error@�5;�3;�4;code�2;�19;NetConnection.Call.Failed�5;level�2;�5;error

<del></del><del></del><del></del>Merci !!!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
46
Date d'inscription
mercredi 23 mars 2005
Dernière intervention
26 avril 2008
3
Merci
Salut, je m'étais lancé il y a pas si longtemps dans la
programmation d'un client rtmp. Pour répondre partiellement à ta
question je précise que les flux ne sont absolument pas cryptés (du
moins pas nativement) ,  pour ce qui est de la méthode de
connexion elle est trés simple:


1) Le client en envoie un paquet de 1536 bytes. qui commence par 03.


2) Le serveur repond par un paquet de 2 x 1536 qui commence par 03 aussi.


3) Le client renvoie les 1536 premiers bytes du paquet envoyé par le
serveur  apres le premier byte (ici 03) ainsi que toutes les
informations nécessaires à la connexion. Ces informations dependent
evidemment du serveur mais je te conseille de sniffer des connexions
sur plusieurs serveurs differents tu devrais voir une structure commune
se dessiner.


4) Le serveur répond par un connection success (je simplifie ce n'est
evidemment pas un "string", le paquet à ici une structure etc. Fais un
dump d'une session sniffée et essaye de l'envoyer je pense que ca
devrait marcher ).


5) Le client envoie un paquet sendstartdata, même remarque que pour le
4, avec en plus un doute quant à l'obligation de ce paquet, bref
sniffing une fois de plus .


Pour le suite je suis à peu prés sur, mais je peux me tromper, que tout depend du serveur.


Voila j'espère avoir pu t'aider un minimum, pour la suite je te
conseille de fouiller sur www.osflash.org, tu trouveras pas mal de
détails concernant la structure des paquets, pas mal d'infos sur le
protocole AMF qui directement inspiré RTMP. Voir aussi le projet Red5.


PS: Pour les paquets initiaux du handshake j'ai simplifié a l'extrême
puisque la méthode utilisée pour générer un handshake semblable aux
clients et serveurs flash est maintenant connue, je ne l'ai pas
développée pour simplifier l'approche, et parcqu'elle n'est pas
indispensable pour établir une connexion,  mais tu peux la trouver
sur osflash sinon fais-le moi savoir et je la developperais ici.

Rions un peu en attendant la mort.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de OcHre
Messages postés
98
Date d'inscription
lundi 8 mars 2004
Dernière intervention
12 avril 2010
0
Merci
Salut, merci de m'avoir éclairé sur ce sujet. Malheureusement je n'ai pas eu le temps de m'intéresser plus en détail à ce projet. J'espère reprendre à un moment une application client (flash) serveur (delphi) et pouvoir faire de la visioconférence, car les composants développés (FMS) sont de très bonne qualité.

Alex
Commenter la réponse de cs_askil2000

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.