Probleme avec socket et SDL

Probleme avec socket et SDL - C - Programmation

Marsh Posté le 23-02-2020 à 10:18:54    

Bonjour,
 
Je me permets de vous contacter car je suis sur un petit projet mêlant socket et SDL en C.
ce que je veux faire c'est recuperer des images de ma camera (branché en ethernet sur mon routeur) et les affichier sur une fenetre de type SDL.
Enfait il s'agit d'un banal logiciel de surveillance. J'ai bien dit des images et non des videos.
J'ai deja fait la partie socket, j'envois la requete http et tout de suite après j'essaie de faire un recv() pour obtenir la reponse http avec l'image.
Et c'est la que ca coince. je ne recois aucun retour de la camera.
J'ai utilisé wireshark pour detecter un eventuelle reponse mais je n'ai ni requete GET envoyé ni réponse de la camera.
Sauriez vous comment je peux faire cela ?
 
Merci d'avance.

Reply

Marsh Posté le 23-02-2020 à 10:18:54   

Reply

Marsh Posté le 23-02-2020 à 17:05:56    

T'es sûr Windows (quelle version) ou Linux?
 
Montre ton code, le moins possible mais compilable...

Reply

Marsh Posté le 24-02-2020 à 08:23:05    

Bonjour,
 
Tu devrais utiliser des bibliothèques plus appropriées pour faire du http sur le réseau. la bibliothèque C est bas niveau et travaille juste au niveau TCP. Il y a des subtilités dans le protocole http qui peuvent faire que ta connexion ne fonctionne pas. Neanmoins, si tu ne vois rien avec wireshark, commence par t'assurer que tu as bien ouvert une connexion vers ta camera ( ip de ta camera) et le port TCP de controle ( 80 si c est du http standard), tu dois voir ca dans ton wireshark, sinon c'est que tu as fait une erreur dans l'initialisation de ton réseau.
 
Pour filtrer avec wireshark , tu peux par exemple faire ip.src == "tonip" && tcp.dstport =="leportreseauquetuasouvert" , ou bien ip.dst="ipdetacamera" && tcp.dstport =="leportreaseauquetuasouvert"
 
 
Je ne sais pas si tu utilises SDL pour le plaisir ou si c'est imposé, mais tu devrais regarder du côté de Qt qui te permet de faire bien plus de choses, et notamment le protocole http encapsulé tant au niveau client que serveur.
 
Sinon, si tu veux rester en SDL , tu peux utiliser SDL_net pour la partie réseau :  https://www.libsdl.org/projects/SDL [...] frame.html
 
Enfin, tu peux toujours faire un mini prototype en python pour deja tester "l'algo" de ce que tu veux faire ( ca se fait en quelques lignes ).
 
Et comme dit rat de combat, n hésite pas à poster du code pour qu'on regarde ce qui ne va pas dans ton code.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed