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 - thej

Pages: [1]
1
Réseau / Envoi d'un tableau de unsigned char avec des SocketUDP
« le: Avril 02, 2012, 04:57:58 pm »
J'ai de bonne base en C++, mais j'évite souvent l'utilisation de pointeur (j'aime pas trop ça, mais j'ai très bien comprit leurs utilité), donc quand je me retrouve forcer à en utiliser je mélange un peut.
Mais c'est en forgeant que l'on devient forgerons, et je pense avoir les base pour forger :P
De plus que c'est vraiment une passions.

Citer
Si ton compilo accepte ça c'est qu'il est mal reglé.
Euh et bien il est mal régler, je vais voir ça  ???

Donc j'ai fait mon algorythme :
Envoi :
char dataEnv[50001]; //1 de plus octet pour le numero
int n = 0;
for(char i = 0 ; i <= 20 ; i++)
{
    dataEnv[0] = i;
    for(int j = 1 ; j < 50001 ; j++)
    {
        dataEnv[j] = dataU[n]; //Plus haut dans le programme : 'unsigned char dataU[1000000];'
        n++;
    }
    serveur.EnvoiDonnes(dataEnv, 50001);
}

Réception :
char dataChar[50001];
if(Socket.Receive(dataChar, 50001, recu, adr, port) == sf::Socket::Done)
{
    int num = dataChar[0] * 50000;
    for(int i = num ; i < (num+50000) ; i++)
    {
        data[i] = dataChar[i+1]; // data est un tableau de unsigned char de 1.000.000 cases
    }
}

Le 1er paquet arrive très bien et s'affiche bien.
Par contre les suivant m'affiche du noir avec quelque pixel de chaque couleur par ci par là.
Et au cinquième paquet le programme client plante (rapport d'erreur).
Mon algorithme contient une erreur ?  :-\

2
Réseau / Envoi d'un tableau de unsigned char avec des SocketUDP
« le: Avril 01, 2012, 06:43:54 pm »
Que d'erreurs que d'erreurs   :-[
Je débute dans le réseau, ne m'en voulez pas  ;)

Reprenons
Envoi :
char *data = reinterpret_cast<char*>(cam->imageData);
serveur.EnvoiDonnes(data, taille); //sf::Int32 taille est calculer et envoyer a client plus tot dans le programme

Réception :
char dataChar[taille]; //sf::Int32 Taille est envoyer un peut plus tot

if(Socket.Receive(dataChar, taille, recu, adr, port) == sf::Socket::Done)
{
       unsigned char *dataTemp = reinterpret_cast<unsigned char*>(dataChar);
       /*
         Traitement
      */
}

C'est déjà mieu  :)
Le programme ne rentre pas dans SocketUPD::Receive, euh ... sa veut dire quoi ?  ??? Qu'il ne reçoit rien ?

L'image fait 923.523 octets, il me faudrat donc 15 envois pour 1 image ?  :o

3
Réseau / Envoi d'un tableau de unsigned char avec des SocketUDP
« le: Avril 01, 2012, 04:14:16 pm »
Citer
(ton pointeur dataTemp n'est pas initialisé)
Une erreur de ma part, je l'avais initialisé à la taille du tableau envoyer plus tôt.

Donc justement ma dernière solution que j'ai tester était :
Envoi :
unsigned char *data = (unsigned char*)cam->imageData;
char *dataChar = (char*)data;
serveur.EnvoiDonnes(dataChar, sizeof(dataChar));

//Je croit que c'était faisable en 2 ligne au lieu de 3 ^^'

Réception :
if(Socket.Receive(dataChar, sizeof(dataChar), recu, adr, port) == sf::Socket::Done)
{
    unsigned char *dataTemp = (unsigned char*)dataChar;
    /*
         Utilisation des données
    */
 }
Mais il doit y avoir une erreur car j'ai une image noire encore.

Seulement 65.536 octets O.o
Mon image fait 923.523 octets, sa fait 15 envois pour 1 image ...
Tu me conseillerais TCP alors ?

4
Réseau / Envoi d'un tableau de unsigned char avec des SocketUDP
« le: Avril 01, 2012, 03:55:15 pm »
Oui bien sur, alors celle que je pense là bonne serait celle là avec des paquets, la 1ere que j'ai faite:

Envoi :
unsigned char *data = (unsigned char*)cam->imageData;
paquet << *data;
serveur.EnvoiDonnes(paquet); //Exécute simplement SocketUDP.Send
paquet.Clear();

Réception :
if(Socket.Receive(paquet, adr, port) == sf::Socket::Done)
{
        unsigned char *dataTemp;
        paquet >> *dataTemp:
        /*
        Utilisation des données
        */
}

5
Réseau / Envoi d'un tableau de unsigned char avec des SocketUDP
« le: Avril 01, 2012, 02:30:23 pm »
Bonjour,

J'ai fait 2 programmes (Client/Serveur) qui s'échange des images sous formes de tableau (unsigned char).
Mais quand je lis le tableau et affiche sont contenu je trouve une image noire.
J'ai envoyé le tableau de toute les façon possible et imaginable sans jamais trouver la bonne solution. (En gros à la fin j'y suis aller au petit bonheur la chance  :P )

Donc en fait ma question est :
Comment envoyer un tableau de unsigned char avec des sf::SocketUDP ?
Merci d'avance pour votre aides  :)

Pages: [1]