Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - james08m

Pages: [1]
1
Réseau / Re : Problème à recevoir un pointeur de uchar par TCP
« le: Février 12, 2015, 12:33:53 am »
Topic à fermer j'ai résolu mon problèmes avec les packets.

Mon code :

Client :
                sf::Packet packet;

                for (int i = 0; i < 921600; i++)
                {
                        packet << frame.data[i];
                }



                // Send data
                if (socket.send(packet) != sf::Socket::Done)
                {
                        cout << "ERROR : Fail to send" << endl;
                }
                else
                {
                        cout << "Sended : " << imgSize << endl;
                }
 

Serveur :
                        Mat  frame = Mat::zeros(480, 640, CV_8UC3);
                        const int size = 921600;

                        sf::Packet packet;
                        if (client.receive(packet) != sf::Socket::Done)
                        {
                                cout << "ERROR : Can't receive data" << endl;
                        }
                        else
                        {
                                // Extract packet into img.data
                                for (int i = 0; i < 921600; i++)
                                {
                                        packet >> frame.data[i];
                                }

                                // Save as .jpg
                                imwrite("received.jpg", frame);
                        }
 

2
Réseau / Re : Problème à recevoir un pointeur de uchar par TCP
« le: Février 11, 2015, 10:26:50 pm »
Je suis sur windows 10 technical preview (Ne parter pas en peur je doute que mon OS sois le problème à ce point)
et je reçoit 195640 octets sur les 921600 (en gros 640*480*3 car l'image est 640x480)

3
Réseau / Problème à recevoir un pointeur de uchar par TCP
« le: Février 11, 2015, 09:12:35 pm »
Bonjour, je travail sur un petit programme en C++ avec opencv et SFML 2.2 pour envoyer une image dans un  *uchar (cv::Mat::data dans opencv) vers un autre ordinateur, mais j'ai quelque problème. En premier lieu, le programme client prend un photo et puis l'envoi par tcp vers un programme serveur, mais le problème est que le serveur ne reçoit pas toutes les données envoyés et je récupère donc qu'une petite partit de l'image (le haut de l'image).

J'ai aussi essayer de changer les socket pour non bloquant, mais sans succès et je suis déjà certain que le frame envoyé est complet. Je crois bien avoir passé le bon size en paramètre quand je reçoit côté serveur, donc je ne sais pas pourquoi je ne reçoit pas tout l'image.

Hypothèse de ma part : Je crois peut être qu'envoyer mon *uchar par paquet serait la solution, mais je ne sais pas comment bien surcharger les opérateurs >> et <<. Surtout que je suis un peux mélangeur la dans la structure du *uchar...

Voici le code :

Client :
        Mat frame = Camera.getVectFrame(9); // Get a frame
        int imgSize = frame.total()*frame.elemSize();

        sf::TcpSocket socket;
        sf::Socket::Status status = socket.connect("127.0.0.1", 69000);
        if (status != sf::Socket::Done)
        {
                cout << "ERROR : Not connected" << endl;
        }
        else
        {
                cout << "Connected" << endl;

                // Send data
                if (socket.send(frame.data,imgSize) != sf::Socket::Done)
                {
                        cout << "ERROR : Fail to send" << endl;
                }
                else
                {
                        cout << "Sended : " << imgSize << endl;
                }

        }
 

Serveur :
        sf::TcpListener listener;

        // Listen to port 69000
        if (listener.listen(69000) != sf::Socket::Done)
        {
                cout << "ERROR : Can't listen to port" << endl;
        }
        else
        {
                // Wait for client
                sf::TcpSocket client;
                if (listener.accept(client) != sf::Socket::Done)
                {
                        cout << "ERROR : Client can't connect" << endl;
                }
                else
                {
                        cout << "Client connected" << endl;

                        // Receive data from socket
                        Mat  img = Mat::zeros(480, 640, CV_8UC3);
                        const int size = 921600;
                        size_t received;


                        if (client.receive(img.data, size, received) != sf::Socket::Done)
                        {
                                cout << "ERROR : Can't receive data" << endl;
                        }
                        else
                        {
                                cout << "Received : " << received << endl;

                                imwrite("received.jpg", img); // Save as jpg file
                        }
                }
 

4
Réseau / Re : Envoyer une image par HTTP
« le: Juillet 24, 2014, 07:08:43 pm »
Et bien les recherches pour vrai n'était pas très bonne, car c'était souvent du vieux code C mélanger à du C++, mais je crois que j'ai compris désormais en regardant dans d'autre section de ce forum et avec t'es indications.

5
Réseau / Re : Envoyer une image par HTTP
« le: Juillet 24, 2014, 05:53:35 pm »
Je n'ai pas encore trouvé, mais ça va venir j'imagine...  ;)

6
Réseau / Re : Envoyer une image par HTTP
« le: Juillet 23, 2014, 10:56:04 pm »
Je sais que je dois changer le type MIME pour image/jpeg, mais c'est vraiment pour mettre le fichier dans le body de la requête que je suis perdu . De la façon que j'envoi ma requête avec du texte, je stream le texte et je le met dans le body, donc est-ce que je devrais utiliser filestream pour mettre mon image et ensuite l'envoyer en requête? Sinon une courte exemple serait bien. Sais-tu où je peux en trouver une?

7
Réseau / Re : Envoyer une image par HTTP
« le: Juillet 23, 2014, 05:13:33 pm »
En fait, je n'ai pas commencer de code exactement, car je ne savais pas dans quoi jouer en premier. J'ai seulement besoin de quelques informations et conseils de base pour bien commencer et ne pas avoir des problèmes inattendu par la suite.

8
Réseau / Envoyer une image par HTTP
« le: Juillet 23, 2014, 02:25:18 am »
Bonjour je suis sur un petit projet c'est temps-ci et je suis bloqué sur un point. Je suis capable d'envoyer par http du texte en POST, mais j'aimerais bien savoir désormais comment envoyer une image par HTTP. Je ne sais pas si je suis le seul qui ni arrive pas, mais c'est assez frustrant, car je ne trouve aucune documentation à ce sujet. Peut être je n'es juste pas été chanceux dans mes recherches, mais je m'en remet désormais à vous.

Pages: [1]