didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
12 oct. 2007 à 19:54
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
13 oct. 2007 à 13:30
Bonjour à tous.
Comment est ce que je peux faire pour que le service que je rende soit toujours à l'écoute d'une quelconque demande :
Serveur => (lance le) Service
Service <-----> (comunique avec) Client
j'ai essayé une boucle "while (true) { ... }" mais ca ne marche pas. Lorsque je fait appel à la même fonction deux fois de suite (ou une autre), ca plante. C'est comme si la lecture des requettes (côter service) ne se faisait qu'une seul fois.
PS: pour communiqer j'utilise des Obect ( donc ObjectInputStream et ObjectOutputStream ).
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 12 oct. 2007 à 23:10
perso faire des trucs de ce genre :
public void run() {
try {
Message m;
for (;;) {
ObjectInputStream in = new ObjectInputStream(c.getInputStream());
m = (Message) in.readObject();
conf.messageReceived(m);
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 12 oct. 2007 à 20:16
Bonjour à tous.
je joint un des codes que j'ai essayé :
public class Service {
//La socket correspondant au client venant d'être accepté
private Socket sService;
//Les flux d'entrée et de sortie
private ObjectInputStream in = null;
private ObjectOutputStream out = null;
public Service (Socket sS) {
try {
//On init la socket correspondant au client
sService = sS;
//On init les flux d'entré et de sortie
in = new ObjectInputStream(sService.getInputStream());
out = new ObjectOutputStream(sService.getOutputStream());
//
while (in.readObject() != null) {
Object o = in.readObject();
if (o instanceof String) {
out.writeObject("[seveur] " + (String)o);
out.flush();
}else {
out.writeObject("[seveur] " + (Object)o);
out.flush();
}
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 13 oct. 2007 à 13:30
slt.
Merci pour le morceau de code; tu init tes flux à chaque fois (ce que je ne faisait pas).
J'ai ré-écrit le code et à présent, il fonctionne correctement.
merci.