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

Développement Discussion :

Connexion UDP


Sujet :

Développement

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Connexion UDP

    Bonjour, dans le cadre de stage, je dois réaliser une application client et une serveur qui peuvent se communiquer en TCP/IP et/ou UDP/IP ; le tout en langage VB. Pour ce qui est de TCP tout est sous contrôle. Mon erreur est avec le protocole UDP. Exemple :

    (chiffre entre paranthèse égal le numéro du port du client, donc le port où est retourné l’information, le localPort est toujours 4005 disons)
    CLIENT est ouvert (1507) | SERVEUR est ouvert (1507) --> la connexion marche, le serveur recoit les données et les renvoit au client

    Je ferme le CLIENT seulement et l’ouvre de nouveau

    CLIENT est ouvert (1508) | SERVEUR est ouvert (1508) --> la connexion marche, le serveur reçoit les données, MAIS NE LES RENVOIT PAS AU CLIENT

    Je ferme le SERVEUR seulement et l’ouvre de nouveau

    CLIENT est ouvert (1508) | SERVEUR est ouvert (1508) --> la connexion marche, le serveur recoit les données et les renvoit au client

    J’ai vérifier mes ports et ils concordent tous comme ont peut le voir dans l’exemple.

    J'ai mis du code au cas ou.... mon but premier est de comprendre le protocole UDP.

    Je peux vous envoyer plus le code si vous désirez.

    [code Client]
    Private Sub ConnectionUDP()
    Static intCpt As Integer

    udpClient.RemoteHost = strRemoteHost 'Nom du serveur ou IP"
    udpClient.RemotePort = intRemotePort 'Port auquel on se connecte

    If intCpt = 0 Then
    udpClient.Close 'Ferme la connection pour jouer safe
    udpClient.Bind 'Établit le lien avec le port local
    intCpt = intCpt + 1
    End If
    End Sub

    [code Serveur]

    If intPortUDP <> CSng(Val(txtPortUDP.text)) Then
    intPortUDP = CSng(Val(txtPortUDP.text))
    Call ConnectionUDP
    End If

    Private Sub ConnectionUDP()
    udpServeur.Close
    udpServeur.Bind intPortUDP 'Établi le lien avec le port local
    End Sub
    [/code]

    Merci beaucoup
    eflamme@hotmail.com

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je vais p'tet te dire des choses évidentes ...

    - UDP est un mode non connecté
    - le serveur ouvre un port en mode passif (passive open) tu peux le comparer à un panier de basket installé sur un terrain.
    - le client fait une ouverture active, sans protocole de connexion ie il lance le ballon dans le panier et le ballon lui revient (le serveurutilise l'adresse de l'émetteur du dernier paquet pour lui répondre avec son adresse).
    - tu peux multiplexer les utilisateurs sur un port serveur ouvert en UDP, le serveur répondra à chaque paquet comme je l'ai dit auparavant . Ainsi si tu as 2 clients qui communiquent avec le serveur comme avec un talk unix, le serveur reçoit les messages de tous les clients mais ne répond qu'au dernier qui a envoyé un paquet (ie au dernier message)

    Ce qui me fait bizzarre dans ton histoire c'est quand tu dis que tu ouvres le serveur port 1507, tu fermes le client et tu l'ouvres port 1508 ... alors que le server est ouvert port 1507 !?

    Après je comprends pas pourquoi tu fais un bind sansparamètre dans le client ... tu es au moins sensé associer un nom au socket que tu crées ?!

    tu me diras si tu y arrives

    A+
    olivier

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Réponse tardive
    Désolé de répondre en retard, les vacances Noël m'appellaient!!

    Concernant le bind sans paramètre du client, c'est parce que je prenais en considération qu'à chaque fois que je me connectais, le port qui ouvrait était différent... après réfléxion et surtout après votre intervention, je comprends que ce n'est pas normal de changer le port côté client mais non côté serveur.

    Par contre, j'ai le même type d'erreur...

    Exemple, le port qui est ouvert de mon serveur est tjrs le port 4000, mon local port pour mon client est 4058. La première fois que j'envoie le data, il me revient, le serveur renvoie le tout vers le port 4058. Si je ferme l'application client et l'ouvre de nouveau et que j'envoie du data (à noter que le serveur est toujours ouvert pour le port 4000), cette fois le client envoie le data à partir du port 4059, je sais que le serveur recoit le data et qu'il le renvoit vers le port 4059, mais le problème est que le data n'arrive pas à destination, c'est à dire au client.

    Est-ce normal?!?

    Vous dites aussi : "Ainsi si tu as 2 clients qui communiquent avec le serveur comme avec un talk unix, le serveur reçoit les messages de tous les clients mais ne répond qu'au dernier qui a envoyé un paquet"

    Donc, il serait normal que lorsque que je fais mes tests avec 2 applications clients ouvert en UDP qui envoit le data, que l'une des 2 ne reçoit rien?!?

    Merci beaucoup

    Eric
    eflamme@hotmail.com

Discussions similaires

  1. [UDP] Connexion et UDP
    Par plaristote dans le forum Réseau et multijoueurs
    Réponses: 10
    Dernier message: 31/07/2014, 22h59
  2. Connexion UDP entre 2 postes distants
    Par leghola dans le forum Protocoles
    Réponses: 9
    Dernier message: 16/04/2013, 11h06
  3. Réponses: 3
    Dernier message: 07/06/2011, 13h02
  4. Connexion UDP aux serveurs de jeux
    Par chrisder dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/11/2009, 17h21
  5. Cherche hébergement PHP acceptant connexions UDP ?
    Par supergrey dans le forum Hébergement
    Réponses: 1
    Dernier message: 05/12/2007, 14h19

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