• # Réseau

    Posté par (site web personnel, Mastodon) . En réponse au message Glib et les threads. Évalué à 3.

    Salut,

    Bon, je ne suis pas un expert en réseaux, mais si j'étais toi, j'aurais les éléments suivants :

    Pour un pogramme client :

    - un thread principal captant les interactions utilisateur sur l'interface graphique.
    - un thread écoutant le flux entrant et envoyant des appels à l'interface graphique dès qu'un message complet est reçu (message au sens texte, notification de connexion, ou tout autre type selon ce que peut faire ton IM).
    - un thread envoyant les données sur le flux sortant : ce thread recevrait des messages de l'interface graphique.

    Pour le programme serveur :

    - un thread principal acceptant les connexions entrantes et les dispatchant directement sur ...
    - ... un thread de traitement d'une connexion (il y en a donc n pour n connexions simultannées)

    Après tout cela dépend de :

    - la volumétrie : c'est juste pour 2 personnes qui dialoguent ou bien pour 10000 utilisateurs simultanés ?
    - la complexité du protocole

    Enfin bref, pour ce genre de programmes, il n'est surement pas inutile de faire un important travail de conception en premier lieu : répartition des tâches entre client et serveur (si tu utilises ce mode), description complète du protocole de communication entre les 2, ... les sujets de réflexion sont nombreux.

    Puisque ce projet est certainement destiné à apprendre des choses, je te propose de regarder le document suivant qui te donnera une idée de toutes ces problématiques, si jamais l'anglais n'est pas un problème :

    - http://www.faqs.org/rfcs/rfc2778.html - une synthèse sympa de ces problématiques
    - http://www.cse.ohio-state.edu/nrl/IM.htm - plein d'autres liens

    Sinon, Google est ton ami :o)

    J'espère ne pas avoir tapé trop à côté de ta question. Bonne chance !