je dois coder un système de ventes aux enchères en C pour le serveur et en java (interface graphique) pour le client donc en gros, dès qu'il y a un accept() au niveau du serveur, on lance un thread avec en paramètre le socket renvoyé par le accept() Pour l'instant ça fonctionne. Dans la méthode associée au thread, on récupère une action (avec un switch) que le client a envoyé(par exemple 1 correspond à une inscription, 2 à une identification, etc) Donc le serveur récupère bien ces informations avec un recv() quand le client valide son inscription. Le problème se situe au niveau de la réponse du serveur, lorsque que le client clique par exemple pour valider son inscription, le serveur recoit bien les informations mais ici l'application client freeze et ne semble rien recevoir (readLine() bloquant au niveau du client ou send bloquant au niveau du serveur?) Par contre l'application ne freeze pas (je reçois quelque chose au niveau du client) lorsque dans la routine du thread j'enleve le commentaire //sortie=TRUE; mais le problème c'est que le thread se termine et qu'on forme le socket client et donc aucun dialogue possible par la suite. voici le code du serveur
Marsh Posté le 10-01-2007 à 15:20:17
Bonjour,
je dois coder un système de ventes aux enchères en C pour le serveur et en java (interface graphique) pour le client
donc en gros, dès qu'il y a un accept() au niveau du serveur, on lance un thread avec en paramètre le socket renvoyé par le accept()
Pour l'instant ça fonctionne.
Dans la méthode associée au thread, on récupère une action (avec un switch) que le client a envoyé(par exemple 1 correspond à une inscription, 2 à une identification, etc)
Donc le serveur récupère bien ces informations avec un recv() quand le client valide son inscription.
Le problème se situe au niveau de la réponse du serveur, lorsque que le client clique par exemple pour valider son inscription, le serveur recoit bien les informations mais ici l'application client freeze et ne semble rien recevoir (readLine() bloquant au niveau du client ou send bloquant au niveau du serveur?)
Par contre l'application ne freeze pas (je reçois quelque chose au niveau du client) lorsque dans la routine du thread j'enleve le commentaire //sortie=TRUE; mais le problème c'est que le thread se termine et qu'on forme le socket client et donc aucun dialogue possible par la suite.
voici le code du serveur
Ensuite dans le main() j'ai ça (je déclare un socket + bind + listen juste avant)
au niveau du client :
Message édité par roms712 le 10-01-2007 à 15:28:01