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

Windows Forms Discussion :

Envoyer fichier par bluetooth, PC vers mobiles


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Envoyer fichier par bluetooth, PC vers mobiles
    Bonjour,

    J'ai un soucis avec une application que je suis entrain de réaliser.
    Mon application consiste a envoyer par bluetooth un fichier texte ou image de mon PC vers d'autres mobiles.
    Donc après un scanne mon application liste les mobiles détectés dans une ListBox, puis en cliquant sur envoyer(btnSendFile) il envoi le fichier aux mobiles de la listbox, l'un après l'autre. Mais seulement les 2 premiers mobiles de ma ListBox reçoivent le messages les autres rien.
    Je programme en C#, avec l'IDE Visual Studio 2010 la version Beta 2. Pouvez-vous m'aider?

    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
     
            private void btnSendFile_Click(object sender, EventArgs e)
            {
                /*if (this.lstDevices.SelectedIndex == -1)
                {
                    MessageBox.Show("Selectionner un mobile s'il vous plait.", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }*/
                //lstDevices.SetSelected(0, true);            
                try
                {
                    for (int x = 0; x <= lstDevices.Items.Count; x++)
                    {
                        lstDevices.SetSelected(x, true);
                        MessageBox.Show("Mobile : " + lstDevices.SelectedItem.ToString(), " Transmission des Messages: ", MessageBoxButtons.OK, MessageBoxIcon.Information );
                        Selected = this.lstDevices.SelectedIndex;
                        this.thrSend = new Thread(new ThreadStart(sendfile));
                        this.thrSend.Start();
                        Thread.Sleep(5000);
                    }
                }
                catch
                {
                    MessageBox.Show(" Liste des mobiles parcourus. "," Action Terminee ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
     
            }
     
            private void sendfile()
            {
     
                lock (this)
                {
                    int index = Selected;                
                    InTheHand.Net.BluetoothAddress address = this.address_array[index];
                    System.Uri uri = new Uri("obex://" + address.ToString() + "/" + "bluetooth_red.png");
                    ObexWebRequest request = new ObexWebRequest(uri);
                    request.ReadFile("C:\\Users\\dolnar\\Documents\\Visual Studio 2010\\Projects\\bluetoothPoc\\BluetoothPoC\\BluetoothPoC\\bin\\bluetooth_red.png");
                    ObexWebResponse response = (ObexWebResponse)request.GetResponse();
                    response.Close();                
                }
     
            }
    Merci de votre aide.

  2. #2
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Bonjour, a première vue je ne vois pas de problème majeur dans le code mais il peut être intéressant de débuguer la boucle for que tu as dans la méthode "btnSendFile_Click".

    Fait du pas à pas et vérifie le process, vérifie aussi "lstDevices.Items.Count"

    Après c'est peut être un simple problème avec les thread, car tu as mis un lock au quel cas la thread abandonne carrément la fonction demandé.
    Essai plutôt de passer par un mutex qui gèrera une file d'attente.
    Je fais ce que je dis et je dis ce que je veux .

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    Bonjour.

    tu as mis un lock au quel cas la thread abandonne carrément la fonction demandé
    Cette phrase m'a surpris, j'ai donc plongé tete baissée dans mon bouquin, qui dit que lock equivaut à Enter() Exit()

    J'y lis aussi concernant Enter() Exit() :
    Lorsque le thread appelle la methode Enter(), il attend d'avoir le droit exclusif (il n'attend que si un thread a deja ce droit).
    il y aurait il une erreur dans mon bouquin?

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    D'accord, si la boucle est correcte, alors le thread utilise dans la methode SendFile doit effectivement avoir un problême. Comment faire...Reste plus qu'a lire des tuto sur l'utilisation des thread avec les obex.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Bonsoir,
    en fouinant, j'ai appris qu'il faut utiliser la librairie BRECHAM.Obex pour pouvoir envoyer des fichiers. Mais j'avoue que je suis totalement perdu...Je voie pas ce que je bien pouvoir ecrire pour que l'appli puisse envoyer le file à tous les éléments de la ListBox.
    Quelqu'un a une idée?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 059
    Points : 12 095
    Points
    12 095
    Par défaut
    Et en débuggant en pas à pas ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Maintenant je sais ou se trouve mon erreur, c'est au niveau du:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ObexWebResponse reponse = (ObexWebResponse)request.GetResponse();
    reponse.Close();
    lorsque le premier mobile de ma ListBox recoit le message, l'application attend un accuse de reception "ObexWebResponse" (Accepter le message ou refuser le message) si il n'y a pas de reponse du mobile , les autres mobile de ma ListBox ne recevrons pas le message et l'application parcourera la listbox
    ainsi.

    Donc je voudrais savoir s'il ya un moyen d'envoyer le message aux divers mobiles de la listbox sans attendre de réponses à chaque envoi.

Discussions similaires

  1. Envoyer fichier par Bluetooth Xe7
    Par curt25 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 06/10/2014, 13h54
  2. Transfert de fichier par socket client vers client
    Par Dasson dans le forum Entrée/Sortie
    Réponses: 21
    Dernier message: 17/04/2012, 03h26
  3. Envoyer fichier par ftp
    Par seb974 dans le forum VB.NET
    Réponses: 23
    Dernier message: 19/09/2007, 10h34
  4. envoye fichier par socket
    Par ac/dc dans le forum Réseau
    Réponses: 3
    Dernier message: 01/12/2006, 21h46
  5. Envoyer fichier par telnet
    Par Krispy dans le forum Réseau
    Réponses: 3
    Dernier message: 02/05/2006, 17h22

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