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

MFC Discussion :

D�lai de CSocket.Connect()


Sujet :

MFC

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Par d�faut D�lai de CSocket.Connect()
    Bonjour,
    Une question concernant la connexion de sockets sous W2000.
    2 applications sur 2 PC reli�s par un switch Ethernet dialoguent via une communication mettant en oeuvre des sockets.

    L'application cliente tente d'�tablir une connexion sockets, � intervalles r�guliers (Timer) par la m�thode :
    A) Dans le cas ou le PC serveur est branch� sur le Switch Ethernet, m�me si son appli n'est pas lanc�e, l'application cliente tente de se connecter � intervalles r�guliers, sans effet, mais cela ne pose pas de probl�mes.
    B) Dans le cas ou seul le PC client est branch� sur le swicth la commande Connect() met beaucoup plus de temps � r�pondre et du coup perturbe l'IHM cliente (menu ne r�agissent pas, etc..)

    Existe-t-il un moyen de s'affranchir de ce temps de r�action long de la commande Connect() ?

    merci d'avance.

  2. #2
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    51
    D�tails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par d�faut
    Par rapport � la fonction connect je ne sais pas, surement un soucis de requete ARP qui n'aboutit pas si le poste n'est pas actif, du coup ta machine attend la reponse jusqu'au timeout probablement. Alors que dans le cas ou le serveur est allum�, mais pas en attente de connexion pour ton appli client, il refuse la connexion du coup ton client a une reponse plus rapidement.

    Du coup, as-tu essay� de mettre ton connect dans un thread ?, de cette maniere ton interface ne devrait pas se figer.

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Par d�faut
    C'est une solution � laquelle je pensais en effet.
    Avant toute chose j'aurai souhait� savoir si ce timeout r�seau �tait param�trable en quelque part.
    Merci pour tes infos.

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    c'est peut �tre possible en modifiant la base de registres.
    j'ai d�j� chang� le keepalive pour une connexion socket
    voir ce lien ou il y a pas mal de param�tres expliqu�s :
    http://www.microsoft.com/technet/net...g/tcpip2k.mspx


  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    J'ai vu des options dans setsockopt() pour le timeout de send() et recv(), mais rien pour celui de connect().

    C'est le genre de choses pour lesquelles j'utiliserais un CAsyncSocket plut�t qu'un CSocket, � moins d'avoir besoin d'un send() bloquant...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Par d�faut
    Merci pour vos r�ponses.
    Je vais voir du cot� de technet.

    Concernant la diff�rence entre CSocket et CAsyncSocket je n'ai pas vraiement assimil�. Dans mon appli c'est CSocket qui est utilis� et je ne vais pas le modifier (pas le temps n�cessaire).

Discussions similaires

  1. R�ponses: 0
    Dernier message: 13/02/2015, 20h22
  2. CSocket temps de r�ponse long pour connect
    Par lio33 dans le forum MFC
    R�ponses: 1
    Dernier message: 18/12/2006, 22h28
  3. couper une connection avec un serveur corba
    Par pons dans le forum CORBA
    R�ponses: 3
    Dernier message: 31/05/2002, 10h11
  4. R�ponses: 3
    Dernier message: 22/05/2002, 09h37
  5. [Kylix] Pb connection � Mysql
    Par Anonymous dans le forum EDI
    R�ponses: 3
    Dernier message: 25/04/2002, 15h26

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