Bonjour à tous,
Je ne trouve pas grand chose sur la bonne façon de programmer un client/serveur en C#. (TCP)
J'arrive à faire communiquer des choses sur le réseau sans soucis, mais il y a une chose qui ne fonctionne pas, et je pense que je n'ai pas bien compris la façon dont fonctionnent les sockets.
J'ai crée deux classes, une serveur, et une client. La classe serveur fonctionne sans soucis.
Par contre, la classe client, elle ne fonctionne pas dans le cas suivant:
- Le client établit une connexion avec le serveur. (Ouverture d'un NetworkStream)
- Le client écrit sur le stream ouvert précédemment.
(Le serveur doit réponde quelque chose à ce qu'a écrit le client).
- Le client attend la réponse du serveur. (lecture bloquante sur NetworkStream)
- Le client ferme le socket.
- Le client affiche la réponse du serveur.
Or, ça ne marche pas Et comme je n'ai jamais eu de cours de prog réseau, je ne vois pas mon erreur.
La suite d'action précédente déclenche un timeout côté serveur et client, et le serveur n'affiche même pas le flux que le client à écrit.
Par contre, si j'enlève la lecture bloquante du client, là le serveur affiche bien ce que le client a écrit, mais je ne sais pas comment récupérer la réponse du serveur
Donc la question, est ce que j'ai fait au dessus est faisable ? et si non, comment je peux récupérer la réponse du serveur ?
Je vous remercie.
Willits