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

Télécharger C Discussion :

Petit serveur (socket, programme réseau)


Sujet :

Télécharger C

  1. #1
    Membre régulier
    Petit serveur (socket, programme réseau)
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Petit serveur (socket, programme réseau)

    Serveur TCP en écoute sur le port 22 (port correspondant habituellement à SSH).

    Le serveur accepte la connexion d'un client distant. Le client envoie des données que le serveur lui renvoie en écho. Les données reçues apparaissent dans la console, et l'adresse IP du client (ainsi que la date et l'heure) sont enregistrés dans un fichier log.

    Compilable avec Code::Blocks, sous Windows.



    N'ayant pas trouvé ici de rubrique "Réseau", j'ai publié dans la rubrique "Divers"

    Qu'en pensez-vous ?

  2. #2
    Rédacteur/Modérateur

    Bof

    dans la premiere version du code:
    - le code n'est pas indente, ou a peine et donc peu lisible
    - si par hasard tu recois 1024 o de donnees, ca crash ou comportement indetermine vu que tu tapes hors buffer

    dans la seconde version du code:
    - en quoi le resultat est meilleur ?
    - des sauts de ligne pour aerer le code rendrait le tout plus lisible
    - si tu recois 1024 o tu affiches le contenu de la memoire de ton ordinateur (heartbleed like)
    - tu ne renvois plus les donnees a l'emetteur

    dans les 2 versions du code:
    - utiliser le port 22 est malvenu
    > il est tout aussi simple et bien mieux de proposer de passer le port par parametre par exemple, en proposant un defaut correct (donc pas reserve par le systeme ou autre application classique, typiquement 6666 ou 8888 pour ma part)
    - il n'y a absolument aucune verification d'erreur
    - inet_ntoa est deprecie, inet_ntop est preferable
    - utilisation de system pour ecrire la date dans le fichier, autant c'est malin, autant system n'est pas a utiliser, meme pour un exemple donc malvenu egalement
    - code strictement limite a Windows

    https://bousk.developpez.com/cours/r...iers-pas/#LIII
    https://bousk.developpez.com/cours/r...-mini-serveur/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.