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

Réseau C Discussion :

Transmettre un socket


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Par défaut Transmettre un socket
    Bonjour,

    Je cherche à faire un programme qui écoute sur plusieurs port et qui après réception d'un message sur un des ports, lance un programme comme un serveur Web qui écoute sur ce port.

    Mon problème est que : Mon programme fait un bind sur le port X, recoit un flux donc il lance le serveur web (jusque la tout va bien) mais ce dernier cherche lui aussi à faire un bind sur le port X et donc ne se lance pas.

    Je voudrai donc "Transmettre" mon socket au serveur web par exemple.
    Mais je ne trouve pas de solution pour l'instant, donc je me dirige vers vous.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Tu peux toujours utiliser setsockopt avec l'argument SO_REUSEADDR mais son utilisation est délicate. Bien lire la doc sur son sujet. Le mieux, c'est toujours de n'avoir qu'un seul programme à l'écoute par port.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Par défaut
    ok ok je m'en sert déjà car j'ai fait un programme qui ferme son socket et qui le libere donc pour le serveur web.

    Mais je vais m'y intéresser pour voir comment l'utiliser pour transmettre le socket.

    Merci beaucoup pour la rapidité et passez une bonne journée

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Sous unix, la technique classique est de passer le socket comme stdout et stdin au sous-process. Toujours sous unix, regarde (x)inetd avant de reinventer la roue. Et il y a souvent moyen de passer des file-descriptors (ce que sont les sockets) d'un process a l'autre (voir chez Stevens, j'ai jamais utilise).

    En passant, fermer le socket va couper la connection. Oui, un autre process pourra la rouvrir, mais le modele me semble bizarre du point de vue du client.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Par défaut
    merci beaucoup

    je vais effectivement éplucher le code de inetd.
    Par contre vous faites référence à Stevens et je ne vois pas à quoi ca correspond.

    quote/(voir chez Stevens, j'ai jamais utilise)./quote

    Encore merci

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Stevens est un auteur et aussi une référence dans le monde des socket unix. Il a beaucoup écrit : http://www.kohala.com/start/
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  2. Comment transmettre un tableau par socket
    Par vodevil dans le forum Programmation et administration système
    Réponses: 11
    Dernier message: 08/04/2006, 14h19
  3. socket
    Par ben91 dans le forum Développement
    Réponses: 5
    Dernier message: 13/08/2002, 11h04
  4. Socket:Envoyer du texte d'un serveur vers tout les clients
    Par cedm78 dans le forum Web & réseau
    Réponses: 7
    Dernier message: 01/08/2002, 16h40
  5. transfert d'un fichier bitmap en socket tcp
    Par localhost dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/07/2002, 00h40

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