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 :

Découverte des sockets


Sujet :

VB.NET

  1. #21
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Je progresse !!! Je n'ai plus l'erreur comme quoi il y a pas de serveur à l'écoute mais la connexion d'un utilisateur ne se passe pas bien malgré tout.

    Je n'ai pas de notification de connexion sur la console du serveur ni dans le chat du client. Si j'essaie d'envoyer un message (ou de déconnecter), VS me dis que l'état de l'objet utilisé pour les communications est "Faulted".

    Petit à petit, je vais finir par y arriver ^^

    EDIT : En mode pas à pas dans le client, je vois bien qu'il y a pas d'erreur. Mais je ne reçois pas de message en provenance du serveur...
    Kropernic

  2. #22
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    C'est bien de refaire, on apprend mieux, mais rien n'empêche de tester un peu avant avec les sources.

    En local normalement ça tourne bien.
    En distant il doit falloir lancer le serveur sous le Compte de service réseau (Network Service Account) sinon les accés extérieur ne passe pas (pour le peu que j'ai pu tester).
    C'est là que ce devient compliqué.
    Est-ce que quelqu'un sait comment faire pour lancer le serveur sous le Compte de service réseau ?

    [Edit]
    Pour ton problème essaye de lancer le serveur en mode adiminstrateur (clic droit ...) faut pas, mais pour tester afin de voir si c'est des restrictions sur tes droits user
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #23
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    J'ai testé ce matin dans le train en exécuter les exe des sources et ça fonctionne bien.

    Je suis donc manifestement passé à côté de quelque chose.

    Je m'en vais refaire tout ça pour en avoir le coeur net...

    EDIT : Ca y est, ça marche en local avec localhost... vais maintenant tester en local avec ip réel.

    EDIT2 : Ca marche en local avec ip réel. Maintenant, tester avec un collègue ^^.

    EDIT3 : Le collègue se connecte bien et est bien notifié sur le serveur mais je ne reçois pas ses messages et lui pas les miens non plus...
    En y réfléchissant, nulle part on ne boucle sur les sessions pour leur envoyer les messages... Y a sûrement un truc du genre à faire...

    C'était bien cela le problème. J'ai apporté les modifications suivantes :
    Ajout d'une variable pour stocker les différents objets avec lesquels il faut communiquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Friend Shared callbacks As New List(Of IChatWCFRappel)
    Ajout de ce code dans la procédure de connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            SyncLock callbacks
                callbacks.Add(callback)
            End SyncLock
    Pareil mais pour enlever dans la déconnexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            SyncLock callbacks
                callbacks.Remove(callback)
            End SyncLock
    Finalement, la procédure pour envoyer le message (la ligne en commentaire est le code du tuto) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub ChatMessageHandler(sender As Object, e As ChatMessageEventArgs)
            For Each item As IChatWCFRappel In callbacks
                item.ReceptMessage(e.User, e.Message)
            Next
     
            'callback.ReceptMessage(e.User, e.Message)
        End Sub
    Et voilà, ça fonctionne dans le réseau interne. Je ne pourrai malheureusement pas tester avec qqn hors du réseau car ce sera bloquer par le firewall. Ce sera à tester plus tard.
    Kropernic

Discussions similaires

  1. Chat basé sur des sockets php5
    Par javhost dans le forum Développement
    Réponses: 1
    Dernier message: 12/07/2005, 16h21
  2. Réponses: 2
    Dernier message: 12/10/2004, 13h04
  3. connection/deconnection des sockets
    Par yotasse dans le forum Développement
    Réponses: 3
    Dernier message: 17/02/2004, 12h08
  4. probleme de gestion de clients avec des sockets....
    Par ludvo dans le forum Réseau
    Réponses: 6
    Dernier message: 25/09/2003, 12h37
  5. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24

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