J'ai vu deux exemples qui illustrent comment la socket du client peut recevoir des messages du serveur.
Exemple 1 :
code du serveur http://man7.org/tlpi/code/online/book/sockets/ud_ucase_sv.c.html
code client http://man7.org/tlpi/code/online/book/sockets/ud_ucase_cl.c.html
Le programme client crée un socket et le lie à une adresse, afin que le serveur puisse envoyer sa réponse.
if (bind(sfd, (struct sockaddr *) &claddr, sizeof(struct sockaddr_un)) == -1)
errExit("bind"); // snippet from ud_ucase_cl.c
Exemple 2 :
code du serveur http://man7.org/tlpi/code/online/book/sockets/i6d_ucase_sv.c.html
code client http://man7.org/tlpi/code/online/book/sockets/i6d_ucase_cl.c.html
Dans l'exemple 2, le code client ne lie pas son socket à une adresse.
Question :
Est-il nécessaire que le code du client lie le socket à une adresse afin de recevoir un message du serveur ?
Pourquoi, dans le premier exemple, devons-nous lier le socket du client à une adresse, et pourquoi n'avons-nous pas besoin de le faire dans le second exemple ?