la nouvelle année est là et les bonnes résolution aussi :ptdr: Enfin on essaie de s'y tenir quoi :marteau:
bref, j'ai décidé d'essayer de combler une de mes lacunes les plus importantes; mais je ne sais pas vraiment par où commencer et j'espérais pouvoir être guidé un petit peu.
Concrètement, ce qui m'intéresse ce n'est pas le code en lui même; je trouve pleins de code de serveur et de client sur le net..mais sans explication c'est dur à comprendre...et de toute façon je ne veux pas réutiliser du code je veux le faire moi même pour pouvoir comprendre.
Donc, pour commencer, je voudrais réaliser deux programmes simples.
un serveur.c et client.c
Le client envoie un message au serveur.
Le serveur affiche le message.
Que dis-je ??? Un message ? non simplifions encore plus..un simple caractère !
Il serait bien sûr possible de réaliser ça, sans passer par un modèle client serveur, peut être en utilisant des thread ou des signaux...mais là c'est un autre problème, je veux vraiment me concentrer sur le modèle client serveur.
Pour le moment je me consacre sur le serveur...plus particulièrement la création du serveur
Si j'ai bien compris on va devoir utiliser des socket.
Et donc des numéros de ports et d'adresse IP.
Je crois aussi avoir compris que les numéros de ports < 1024 sont utilisés par le système.
Donc première question: Comment choisir un numéro de port ?
On a ensuite besoin de l'adresse Ip j'imagine ? Ip c'est niveau réseau. Mais dois je utiliser ladresse IP de mon ordi ou de ma box ?
De plus, y a t'il une fonction permettant de récupérer cette ip ? Parce que si je me trompe pas les adresse IP changent à chaque reboot de la box et sont donné par les opérateurs en france de façon aléatoire, donc je peux pas juste mettre mon ip actuelle.
Une fois que l'on a déterminé le numéro de port et l'adresse IP; a t'on besoin d'autre chose comme donnée pour créer notre serveur ? Si oui les quelles ?
Si non, comment on fait concrètement d'un point de vue du code pour créer ce serveur.
J'ai lu que le prototype de la socket était le suivant..mais je m'imagine bien que ça n'est pas aussi simple que de remplir une socket.
- Code: Tout sélectionner
int socket(int domain, int type, int protocol);
Merci à vous pour votre aide.
PS: Je n'ai pas spécifié sur quel OS; il y a des différences entre windows et linux il me semble pour les socket...mais je devrais m'en sortir sur ce point là..je veux surtout comprendre d'un point de vue algo comment ça s'écrit.
PS2: Je suis également preneur de tout site expliquant ce sujet là...en français si possible pour le coup^^ J'en ai visité pas mal, mais soit ils ne donnent que du code, soit ils donnent trop de théorie et pas assez de code....