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 :

[VB.NET] Probleme pour réutiliser une sockets ??


Sujet :

Windows Forms

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut [VB.NET] Probleme pour réutiliser une sockets ??
    Bonjour, je vient de faire un serveur/client tchat asynchrome. Lorsque je clique sur mon bouton déconnection :
    Pour le serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    socketclient.Shutdown(SocketShutdown.Both)
    socketclient.Close()
    [ socketclient = sckserveur.endaccept(ar) ]

    Pour le client automatiquement sedéconnecte du serveur avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sckclient.Shutdown(SocketShutdown.Both)
     sckclient.Close()
    Le probleme c'est que je voudrais reutiliser le socket serveur (sckserveur qui n'est pas fermé ) ansi que le socket clie
    nt ( sckclient) pour me connecter avec une autre asresse IP...

    Lors de la nouvelle connexion, une erreur apparait à cet endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     sckserver.Bind(remoteEP)
    ... en me disant qu'un argument non valide à été donné...

    On m'a dit qu'il ne fallais pas réutiliser les socket fermés masi j'ai pas envie de faire 30 sockets pour 30 connexions différentes...

    Quelqu'un peut m'aider ???

    Merci bcp

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut !
    tu refiat un new socket ...
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    c'est a dire en gros que je dois refaire la meme chose avec une autre socket??
    Car imagine que l'utilisateur se deconnecte 10 fois, je vais comme mm pas faire 10 sockets différents....

    merci

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par fdiedler
    c'est a dire en gros que je dois refaire la meme chose avec une autre socket??
    Car imagine que l'utilisateur se deconnecte 10 fois, je vais comme mm pas faire 10 sockets différents....

    merci
    absolument pas ... tu ne fait que refaire un new sur la meme variable .... ce qui a pour effet au passge de supprimer l'autre et les résidus qu'elle contient .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Socket sock = new Socket(...);
    // utilisation du socket 
     
     
    sock = new Socket(...);
    et ainsi de suite .
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    j'ai pas tres bien compris....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Public sckserver As New Socket(AddressFamily.InterNetwork, _
        SocketType.Stream, ProtocolType.Tcp)
     
     Dim ipHostInfo As IPHostEntry = Dns.Resolve("82.234.129.86")
                    Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)
                    Dim remoteEP As New IPEndPoint(ipAddress, 80)
     
                    sckserver.Bind(remoteEP)
                    sckserver.Listen(1)
                    sckserver.BeginAccept(New AsyncCallback(AddressOf acceptcallback), sckserver)
    Ca c'est mon code pour la connexion du serveur... et comment je fais apres avoir supprimer le socket serveur avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    socketclient.Shutdown(SocketShutdown.Both)
                socketclient.Close()
     
                sckserver.Close()
    ... pour me reonnecter en utilisant un autre socket sans tout refaire ??

    Merci bcp

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par fdiedler
    ... pour me reonnecter en utilisant un autre socket sans tout refaire ??

    Merci bcp
    tu fait une méthode avec le code de connection et tu la rappelle ...
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Si j'ai bien compris je met le code de connection dans un module et lorsque l'utilisateur clique sur le bouton je l'apelle avec: call mamethode() ...

    Mais alors je n'utilise qu'un seul socket ?

    Merci

  8. #8
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    oui un socket par client .
    Ton serveur doit lui garder en memoire tout les socket client qui sont connecté . Par exemple dans un tableau de socket .
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  9. #9
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    ah ok je comprends mieux donc en gros le serveur a un socket qui esdt en ecoute tout le tps... et plusieurs socketclient selon le nbres de clients...
    c'est ca mais c'est pas de la programmation reseau multiclient??

    Si oui tu pourrais me donner de la documentation ou des codes pour pouvoir m'aider??

    Merci bcp

  10. #10
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par fdiedler
    ah ok je comprends mieux donc en gros le serveur a un socket qui esdt en ecoute tout le tps... et plusieurs socketclient selon le nbres de clients...
    c'est ca mais c'est pas de la programmation reseau multiclient??

    Si oui tu pourrais me donner de la documentation ou des codes pour pouvoir m'aider??

    Merci bcp
    : je comprend pas la question .... C'est de la programmation multiclient car tu gere plusieurs client a la fois sur un meme serveur .
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  11. #11
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    ah ok car a la base c'etait aps ce que je voulais faire je voulais juste savoir comment faire pour qu', avec un seul client et un serveur, on puisse déconnecter le socket puis se reconnecter avec un autre socket à l'infini....

    Par exemple : j'en une adresse IP d'un ami je me connecte apres je me déconnecte et je veux me connecter sur lIP d'un autre ami... mais comment réutilisé ou créer un autre socket de maniere a faire cette manipulation a l'infini ??

    Merci

  12. #12
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    avec un new (enfin son équivalent en VB.NET).

    Je te l'ai dit déjà deux ou trois fois... que tu ai un, deux , mille ou 10 000 socket c'est la meme chose ...
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  13. #13
    Inactif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Ok c von j'ai eu du mal mais j'ai reussi !!!!

    Merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/06/2010, 10h35
  2. Réponses: 4
    Dernier message: 03/08/2007, 11h41
  3. Réponses: 1
    Dernier message: 18/07/2006, 16h44
  4. Réponses: 3
    Dernier message: 11/11/2005, 12h59
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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