IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Envoie image par Socket


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut Envoie image par Socket
    Salut et bienvenue cher mon probleme, j'utilise un client/server asynchrone et mon problème et simple, j'utilise ma fonction pour faire un screenshot, mais mon soucis c'est de l'envoyer au client a travers la socket , quelqu'un s'y connait ^^ ?

    Et niveau client, je voudrais savoir comment recup l'image, comment je la reconstitue !

    Merci d'avance

    [EDIT] J'ai la solution, mais maintenant je voudrais savoir comment convertir le tableau de byte que je recoie en .jpeg ou .exe etc ...

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    solution expliquée des dizaines de fois sur ce forum
    mais en général c'est pour stocker l'image dans une base de données (image => byte() et l'inverse) donc recherche sur le forum ...

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    mais en général c'est pour stocker l'image dans une base de données (image => byte() et l'inverse) donc recherche sur le forum ...
    ... et il y a dans la FAQ deux articles là dessus ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    Excuser moi de ne pas avoir chercher trop loin je suis désolé, mais maintenant mon problème est : a l'affichage de l'image coter client (quand il là réceptionne et converti le tableau de byte en image) elle n'est pas complète, vous saver d'où ca peut venir ?

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    elle fait plus de 8ko ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    101 KO exactement, c'est un screen de mon écran en 1280x1024

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    quel méthode du socket utilises tu ? car si ca depasse 8ko ca coupe en x morceaux, donc faut recoller à l'arrivée ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    Je converti l'image en tableau de byte coter server, réception au client, je converti le tableau de byte reçue en image, ensuite je l'affiche dans le picturebox, mais le hic, seul a peut près 10% de l'image et là

    Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim screenByte() As Byte ' Mon buffer
     
    screenByte = Image2ByteArray(Image.FromFile(le path de mon image)) ' Conversion
     
    sock.send(screenByte) 'J'envoiee le tableau
    Client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim image As Image = ByteArray2Image(data) ' La conversion du tableau en drawing.image
     
    PictureBox1.Image = image ' je l'affiche
    Je susi en mode asynchrone.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    fait voir ton code de réception, mais je pense que c'est ce que je dis (c'est une limitation des cartes réseaux ou du protocole tpc il me semble ...)
    ton tableau d'octet va arriver en plusieurs morceaux, donc il faut les recoller

    ou utiliser une autre méthode plus simple pour envoyer l'image (wcf, remoting)
    c'est plus simple à utiliser car ca fait abstraction de ce genre de soucis, mais pas plus simple à comprendre ...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    J'utilise un callback qui marche parfaitement, et quand je break a l'envoie de l'image mon buffer fait 130xxx.

    J'ai même essayer de break a l'envoie pour verifié s'il n'envoie pas en plusieurs morceau, non je réceptionne qu'un packets :s

    EDIT : A l'envoie le packet mesure prêt de 131xxx a la réception surprise il n'en reste que 81xx O_o'...

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    8192 maxi oui ...


    il faut relancer le beginreceive sur le callback du receive, de manière à te remettre à l'écoute des paquets à venir

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    En faite, je reçois bien 131xxx mais mon buffer coupe automatiquement, pour le beginreceive c'est opérationnel, je voudrais juste savoir comment je peut reconstituer alors ^^ ?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    Ta pas un tuto pour sa sinon ?

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    et bien tu récupères le octets et tu les ajoutes dans le meme tableau jusqu'à la fin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Prob envoie image par bluetooth J2ME
    Par Jimmy06200 dans le forum Java ME
    Réponses: 1
    Dernier message: 06/03/2009, 02h05
  2. Envoie Fichier par socket
    Par Invité dans le forum C#
    Réponses: 3
    Dernier message: 28/02/2008, 09h57
  3. Envoi donnes par socket
    Par astrotouf dans le forum Web & réseau
    Réponses: 4
    Dernier message: 09/04/2007, 21h06
  4. Envoi image par formulaire et prise d'url
    Par cream dans le forum Langage
    Réponses: 7
    Dernier message: 09/02/2007, 15h21
  5. Transfert d'une image par socket stream
    Par francky23012301 dans le forum Langage
    Réponses: 1
    Dernier message: 31/10/2005, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo