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 :

Socket pour Serveur/Multiclient


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2008
    Messages : 53
    Points : 32
    Points
    32
    Par défaut Socket pour Serveur/Multiclient
    Bjr tt le monde,
    j'ai une application client serveur et je souhaite que mon serveur dispatche les données a plusieurs clients au même temps, mais le problème c'est que je n'arrive a envoyer les données qu'a un seul client et l'autre ne reçoit que lorsque j'arrête le premier client,c'est comme ci en mode exclusif
    voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Shared newclient As IPEndPoint
        Shared newsock As Socket
     
      Dim ipep As New IPEndPoint(IPAddress.Any, 9050)
    newsock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
      newsock.Bind(ipep)
      newsock.Listen(999999999)
      client = newsock.Accept()
     newclient = DirectCast(client.RemoteEndPoint, IPEndPoint)

    donc qu'est ce que je dois changer pour que je puisse accepter tt le monde ensemble et puis-je limiter l'accès a quelques clients, genre donner la permission a certaines adresses IP?

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    une connexion tcp ne peut etre qu'entre 1 seul client et 1 seul hote
    sur un port, il ne peut y avoir qu'une et unique écoute
    par contre sur un port il peut y avoir plusieurs connexions simultannées

    pour avoir du mutliclient, il faut plusieurs objet socket hote, un écoute, quand un client se connecte, tu acceptes la connexion, elle est établie, et là tu instancies un nouveau saocket qui se met à écouter et ainsi de suite

    deja discuté sur ce forum, tu peux faire des recherches ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2008
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Vous voulez dire qu'il faut que j'aille autant de sockets que de clients!!!!
    Mais si je veux définir moi même mes clients comment dois je procéder?
    avez vous un exemple de code, un lien ou autre qui puisse m'aider?
    je suis nouvelle dans ce forum et j'ai besoin d'un petit coup de main
    Merci

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    il faut en effet un objet socket par client qui se connecte
    il est possible de les garder dans une collection, ca permet d'avoir des sub génériques qui traitent les données pour tous les clients quand meme, sans avoir le code x fois

    au moment où un client se connecte, je sais pas si on a tout de suite les infos interressantes (style son ip), dans le pire des cas, une fois accepté ca doit se trouver (si on accepte, on en créé un autre qui listen, et on ajoute celui connecté à la collection)
    si l'ip vous plait pas (deja présente ou blacklistage) , vous fermez le socket (et vous le retirez de la collection par exemple)

    je n'ai pas d'exemple, mais je pense que ca doit se trouver sur ce forum, il y a un menu de recherche ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2008
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    J'ai compris a peu pres la solution mais j'ai besoin tout de meme d'un petit code vu que je suis pas specialisee en reseau. j'ai cherchee partout dans le forum mais j'ai pas trouvee mon besoin
    Please help, car partout je trouve des trucs un peu difficile genre winsocket et je ne c quoi, un petit coup de main me fera l'affaire
    Merciiiiiiiiiiiiiiiiiiiiiiiiiiiii

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    winsock c'est un ocx qui était utilise sous vb6, c'était un peu plus simple que sous .net car y avait de vrais évènements

    sous .net y a quand meme les classes tcpclient et tcplistener qui facilite un peu le travail, après il suffit de remplir les streams en propriété et ca part sur le réseau

    il faut déjà essayer d'établir une connexion et de transférer un peu de données avec un seul client, ensuite tu peux modifier pour gérer le multiclient


    donc en cherchant tcpclient et/ou tcplistener tu auras ptete des codes compréhensibles

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/08/2011, 15h16
  2. Serveur Multiclient sockets
    Par TWEESTY dans le forum Réseau
    Réponses: 7
    Dernier message: 10/06/2010, 12h11
  3. Socket pour des serveurs jeux
    Par kazylax dans le forum VB.NET
    Réponses: 7
    Dernier message: 01/04/2009, 17h15
  4. Réponses: 11
    Dernier message: 30/06/2008, 14h15

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