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

C++/CLI Discussion :

Lien par socket entre 2 raspberry


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Lien par socket entre 2 raspberry
    Bonjour,

    je dispose de deux raspberry sous raspbian: un serveur ainsi qu'un client ecrit en c.

    Le serveur utilise la fonction suivant:
    listen=socket(AF_INET,SOCK_STREAM,0)

    Mon client communique bien avec le serveur.

    Si je termine mon client proprement ou contrôle C, la liaison se coupe bien, le serveur la detecte. Si je fais un netstat, la liaison n est plus presente.

    Par contre,
    si volontairement , je debranche la prise RJ45 du client ou si je coupe le courant du client raspberry, mon serveur detecte bien que la communication a ete coupé, mais par contre en faisant netstat , je vois toujours la connection etablie.

    Une idee pour corriger cela?

    merci de votre aide


    ps:
    si un admin pouvait déplacer le message dans la bonne section , je viens de me rendre compte que le post n a pas ete fait au bon endroit. desole et merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 059
    Points : 12 095
    Points
    12 095
    Par défaut
    si volontairement , je debranche la prise RJ45 du client ou si je coupe le courant du client raspberry, mon serveur detecte bien que la communication a ete coupé
    IP est un réseau par paquet.
    Débrancher un câble RJ45 n'a pas à couper une connexion TCP.
    Seul une notification par un flag dans un paquet ou un timeout peut faire une déconnexion "propre" de la connexion TCP.
    Vous pouvez configurer (ou on configure pour vous, via un paramétrage par défaut) via des mécanismes non que les sockets réagissent à des notifications de couches inférieures de l'OSI.
    Une déconnexion du câble RJ45, cela n'a de l'intérêt qu'au niveau 1 de l'OSI (niveau physique).

    Donc le comportement de netstat est le bon et votre stack TCP/IP respecte les standards de l'OSI.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour. Merci de votre réponse. Pour des raisons pratiqu e (mais pas conseillé je sais), le client est toujours débranche a " l arraché. Comment puis je enlever proprement ces connexion s du serveur. L IP du client étant dynamique je me retrouve avec plein de connexion fantômes. Merci encore de votre aide...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 059
    Points : 12 095
    Points
    12 095
    Par défaut
    Là, vous êtes borderline au niveau TCP/IP.

    le client est toujours débranche a " l arraché
    La demi-connexion client->server ne sera donc jamais fermée correctement.
    Le fait de fermée une demi-connexion en TCP, c'est pas juste pour faire jolie, cela permet de supprimer des packets IP qui peuvent se balader pendant plusieurs minutes dans un réseau IP.
    Mais c'est aussi un mode d'attaque de TCP/IP par dénis de service assez connu : "half-open TCP connection flood".

    La détection peut se faire en utilisant de la configuration ou un protocole de plus aux niveaux.
    http://blog.stephencleary.com/2009/0...n-dropped.html

    Pour Windows, c'est donc assez comment que les programmes de firewall configurent le stack IP de l'OS.

    Je pense que cette configuration existe aussi sous "raspberry sous raspbian". Mais je ne connais pas cette plateforme.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci je vais essayé de regarder votre lien

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    je serais interesse par la methode du timing... on ne recoit rien pendant un certain temps et ca coupe.

    comment l'implenté?

    merci

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 059
    Points : 12 095
    Points
    12 095
    Par défaut
    Si vous faites des lectures synchrones sur ces sockets, vous pouvez configurer votre appel système pour qu'il sorte au bout d'un certain temps si aucune donnée n'a été transmise (timeout).
    Vous traiterez ce timeout en formant définitivement la socket.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/02/2014, 16h52
  2. Communication bidirectionnelle entre 2 postes distants par Socket
    Par tails dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 05/07/2013, 17h42
  3. Réponses: 5
    Dernier message: 29/03/2007, 23h26
  4. Communication par socket TCP entre module windows et linux
    Par =o0 MOH =0o= dans le forum Réseau
    Réponses: 2
    Dernier message: 29/03/2007, 18h04
  5. Réponses: 3
    Dernier message: 30/03/2004, 10h38

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