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 Mobile .NET Discussion :

[CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?


Sujet :

Windows Mobile .NET

  1. #1
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut [CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?
    Salut les amis !

    J'essaye de mettre en oeuvre une petite communication toute simple entre une appli sur un serveur qui écoute des données transmises par une appli cliente sur un Pocket PC. Cette dernière envoye des chaines de caractères.

    Voici le code que j'utilise pour la partie client:

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    Imports System.Net
    Imports System.Net.Sockets
    Imports System.Text
     
    Public Class FrmTest
        Inherits System.Windows.Forms.Form
     
     
        Private WithEvents m_Bouton As Button
        Private WithEvents m_ChampSaisie As TextBox
        Private m_Client As TcpClient
        Private m_Port As Int32
     
     
        Public Sub New()
            MyBase.New()
     
            m_ChampSaisie = New TextBox
            m_ChampSaisie.Location = New Point(20, 10)
            m_ChampSaisie.Size = New Size(200, 20)
            m_ChampSaisie.Text = "Texte à transmettre"
     
            m_Bouton = New Button
            m_Bouton.Text = "Trans. Données"
            m_Bouton.Location = New Point(20, 40)
            m_Bouton.Size = New Size(200, 80)
     
            Me.Text = "FrmTest"
            Me.Controls.Add(m_ChampSaisie)
            Me.Controls.Add(m_Bouton)
     
        End Sub
     
     
        Private Sub m_Bouton_Click(ByVal sender As Object, ByVal e As
     System.EventArgs) Handles m_Bouton.Click
            Try
                Dim stream As NetworkStream
     
                Dim data As [Byte]() = Encoding.ASCII.GetBytes
    (m_ChampSaisie.Text)
     
                m_Port = 13000
     
                m_Client = New TcpClient("168.192.168.97", m_Port)
     
                stream = m_Client.GetStream()
     
                stream.Write(data, 0, data.Length)
     
                m_Client.Close()
     
            Catch ex As SocketException
                MsgBox("SocketException" & vbCrLf & ex.Message)
            Catch ex As Exception
                MsgBox("Exception" & vbCrLf & ex.Message)
            End Try
        End Sub
     
    End Class
    J'ai testé ce code entre deux PC, et cela passe impeccable, je récupère bien les données du côté de la partie serveur.

    Par contre, lorsque je porte ce code sur PPC, que je le lance, j'ai une erreur lors de l'instanciation de l'objet m_Client (m_Bouton_Click): "Could not find resource assembly".


    Quelqu'un à-t'il une idée ?

    Merci !
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    Je pense que t'as eu une erreur de connection socket.
    Ceci produit une exception qui est catché.
    Ensuite dans le traitement du catch tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox("SocketException" & vbCrLf & ex.Message)
    Et là il ya ressource assembly exception.
    En gros, les ressources des messages d'erreurs ne sont pas distribuable. Donc quand tu génères un cab et que tu installes le .net framework, ca ne t'installe pas de quoi afficher les messages d'erreurs.

    Tu peux tester d'enlever les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox("SocketException" & vbCrLf & ex.Message)

  3. #3
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Exact ! sans demander d'afficher le message contenu dans SocketException, je n'ai plus d'erreur concernant la ressource.

    Reste l'erreur de connection, j'ai pourtant bien la bonne IP, avec l'appli serveur en écoute, le pare-feu XP désactivé... je ne vois pas d'ou proviens le malaise...
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est bien une application pour Pocket PC que tu as choisit/fait :

    Tu n'utilises pas de fichiers ressources externe :

  5. #5
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    C'est bien une appli pour Pocket avec le compact framework.
    J'avais fait tout d'abord des tests avec les objets TcpClient, TcpListener dans des applis sur PC (Framework classique), vérifié l'existence de ces classes dans le compact framework, et recréé une appli cliente pour Pocket. J'ai fait un Cab pour l'installer, et je n'ai pas d'autres ressources associées. Tout est dans le code.
    Seule reste en appli PC celle qui tourne en écoute sur le serveur.

    Je tombe toujours sur des phénomènes pas communs....

    J'aurais du me méfier en voyant le nom de l'AGL, Visual AuxFrontièresDuRéel .Net
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  6. #6
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    J'ai trouvé le soucis ; c'était tout bête, comme souvent ; dans le constructeur de TcpClient, il faut préciser le nom de l'hote et non l'adresse Ip.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_Client = New TcpClient("Nom_Poste_Hote", m_Port)
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

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

Discussions similaires

  1. Comment utiliser les sockets en tâche de fond
    Par rimste dans le forum JavaFX
    Réponses: 3
    Dernier message: 13/04/2015, 08h23
  2. Réponses: 4
    Dernier message: 15/06/2010, 16h33
  3. Réponses: 15
    Dernier message: 28/06/2007, 19h28
  4. Réponses: 1
    Dernier message: 20/02/2007, 18h47
  5. Réponses: 1
    Dernier message: 04/05/2006, 10h45

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