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++ Discussion :

[Réseau] La programmation réseau windows et unix est-elle différente ?


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Points : 44
    Points
    44
    Par défaut [Réseau] La programmation réseau windows et unix est-elle différente ?
    Bonjour à tous,

    Comme dit dans le titre, j'aimerais savoir si la programmation réseau en c++ sous windows et unix est différente ?

    Je m'explique, je dois développer une application réseau pour l'école en c++ et celle-ci doit tourner sous unix.

    J'aimerais savoir si je peux développer et tester mon applic sous windows à l'aide de dev c++ et la porter ensuite sur unix ou si je dois la développer sous linux pour être à peu près certain de sa portabilité.

    La programmation réseau est-elle différente en c et en c++ ? dans le sens où il existerait des classes prédéfinies pour le c++ ?

    quelqu'un aurait-il un cours en ligne réseau c++ ?

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut
    Salut,

    Dans la mesure ou la gestion de l'interfaçage réseau de ta machine est gérée par l'OS, si tu tapes directement au niveau des APIs kernel effectivement cela sera très différent (pas les mêmes headers, pas les mêmes fonctions, etc ...).

    ACE fournit un framework complet et portable pour gérer ce genre de choses, tu devrais y jeter un coup d'oeil

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Si tu utilises les sockets, à part un ou deux trucs rapidement réglés, ce sera complétement identique.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Super bolhrak, vraiment très intéressant comme solution, l'as-tu déjà essayé ? est-ce compliqué d'utilisation ?

    En sachant que je n'ai que les droits d'un simple utilisateur sur la machine unix, celà ne posera pas problème pour utiliser le framework ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Une question pour laurent Gomila, si je comprends bien, si j'utilise les sockets du c, comme listen, bind... etc ça sera pareil excepté 2 ou 3 fois rien à changer

    Donc le mieux et le plus facile pour moi serait d'utiliser ace ou me créer des classes réseau "maison" ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    reste à savoir si dans ton appli tu as le droit d'utiliser une lib externe ou si son but est justement d'utiliser toi même les sockets unix par exemple.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Oui mon but est d'apprendre la programmation réseau, donc vu sous cet angle il serait mieux que je développe mes classes moi meme.

    Donc je le ferai à la manouelle :o)... ce qui ne me pose pas de problème car il faut que j'apprenne les concepts, c'est juste au niveau de la compatibilité windows - unix que ça m'effraie, car pas envie de devoir recommencer tout depuis le début... mais si j'ai bien compris, d'après laurent gomilla il n'y à pas beaucoup de différences donc je peux développer sous win et adapter sans trop de difficultés sous linux / unix

  8. #8
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Si tu veux le faire toi même c'est ton choix (tu as raison car c'est très pédagogique) mais si tu n'as plus envie :

    Qt (librairie multi-plateforme) gérant tout (réseau, db, graphiques, interfaces)...

    www.trolltech.com

    PS: Qt est disponible en version OpenSource (gratuitement) pour windows ici :

    http://trolltech.com/developer/downloads/qt/windows

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je pense qu'effectivement, manipuler les sockets sera la meilleure solution si tu veux apprendre.

    Personnellement j'ai fait une petite couche portable aux sockets, et voilà ce que j'ai eu à changer entre Windows et Linux :
    - Ajouter une fonction d'init et une fonction de fermeture sous Windows (WSAStartup, WSACleanup)
    - Changer le type des sockets (int sous Linux, SOCKET sous Windows)
    - Changer la fonction de fermeture d'un socket (close sous Linux, closesocket sous Windows)

    Avec un peu de compilation conditionnelle tu as un code portable en 2 minutes.

    Un petit conseil aussi : étant donné que sous Windows tu as la quasi-totalité de l'interface Unix des sockets, mais aussi plein de choses non portables en plus, utilise plutôt la documentation Unix pour être sûr de ne pas utiliser des fonctions spécifiques à Windows.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup pour tous ces judicieux conseils

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Personnellement je conseille boost asio plutôt que ACE qui est une grosse usine, ça vaut en tous cas le coup d'y jeter un oeil avant de se lancer...

    MAT.

Discussions similaires

  1. Initiation à la programmation réseau sous Windows
    Par Melem dans le forum Articles
    Réponses: 7
    Dernier message: 30/03/2017, 19h43
  2. Réponses: 0
    Dernier message: 19/12/2009, 00h12
  3. Réponses: 3
    Dernier message: 09/11/2004, 10h44
  4. Pour débuter en programmation réseau
    Par durnambule dans le forum Développement
    Réponses: 3
    Dernier message: 20/06/2004, 22h21

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