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 6 et antérieur Discussion :

Pb de Socket et TCP


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Par défaut Pb de Socket et TCP
    Bonjour,

    J'ai écrit un petite appli qui permet de recevoir une trame texte d'un pc du réseau sur un poste.

    Coté réception de la trame ça fonctionne bien chez moi sur XP mais chez un copain en Serveur 2003 l'appli se plante.
    Elle scrute le port, reçoit la première trame, la traite, envoie OK au client, ferme le port puis au momment de se remettre à scruter le port, j'ai une erreur 10048.

    Microsoft dit qu'il faut attendre 4mn avant de réouvrir le même port.

    Je suis un peu perdu ????

  2. #2
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    Bonjour,
    he oui ne pas oublier qu'a l'origine le protocole TCP/IP a été developpé pour l'armée et il devait donc supporter un certain nombre de contrainte (genre guerre nucléaire totale).
    Une des conséquences: les sockets restent rémanentes un certain temps, meme après leur fermeture pour etre sur que les interlocuteurs ont récupérés tout le message.
    La solution: Travailler avec les instances de socket (groupe de controle).
    L'instance 0 écoute en permanence les demandes de connexions, mais l'accept se fait sur une nouvelle instance.
    L'avantage: tu peux accepter plusieurs clients en meme temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub sckServeur_ConnectionRequest(Index As Integer, ByVal requestID As Long)
       static intNew as integer
       If Index = 0 Then
          intNew= intNew+ 1
          Load sckServeur(intNew)
          sckServeur(intNew).Accept requestID
       End If
    End Sub
    Rmq: je fais de meme pour les sockets clientes, notamment pour gérer les déconnexions/connexions automatiques

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Par défaut
    Merci c'est une exellente idée.
    Mon problème était juste lié à un bugg dans mon code mais je garde cette réponse au chaud pour ma prochaine intervention dans ce code.

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

Discussions similaires

  1. Probleme: Chat avec les sockets en tcp avec du C
    Par mansour67 dans le forum Réseau
    Réponses: 6
    Dernier message: 06/07/2012, 20h26
  2. Problème de connexion Socket en TCP
    Par jerdream78 dans le forum Réseau
    Réponses: 11
    Dernier message: 26/02/2010, 12h05
  3. Raw socket "bogus tcp header length"
    Par Marnage dans le forum Réseau
    Réponses: 3
    Dernier message: 04/08/2008, 19h27
  4. Réponses: 8
    Dernier message: 22/06/2008, 08h12
  5. Gestion des Sockets Protocole TCP/IP
    Par Julien_C++ dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/08/2006, 15h12

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