socket Close ( est - ce normal ? )

socket Close ( est - ce normal ? ) - Java - Programmation

Marsh Posté le 12-06-2003 à 15:08:01    

en repondant a un post y a pas si longtemps je m'apercois que cette fonction ferme un Buffer et le Buffer ferme la socket egalement mais d'apres moi ca me parait pas tres normal
puisque si je souhaite utiliser la socket apres elle se trouve close donc si kkun pourrai m'eclairer si ce n'est pas normal ba une aide serai bienvenu et une explication de meme si ca s'avere normal ;)
 

Code :
  1. public static int envoieFichier(Socket recep,File fichier)
  2. {
  3.  try
  4.  {
  5.   OutputStream lec = recep.getOutputStream();
  6.    ObjectOutputStream out = new ObjectOutputStream(lec);
  7.    out.writeObject(fichier);
  8.    out.flush();
  9.    out.close();
  10.    lec.close();
  11.   return 1;
  12.  }
  13.  catch (IOException fic)
  14.  {
  15.   System.out.println("Erreur dans envoieFichier :" + fic.getMessage());
  16.   return -1;
  17.  }
  18. }


 

Reply

Marsh Posté le 12-06-2003 à 15:08:01   

Reply

Marsh Posté le 13-06-2003 à 10:32:55    

un chti coup de main serait bienvenu ;)

Reply

Marsh Posté le 13-06-2003 à 10:37:48    

réfléchis un peu ;-)
 
Ton objectOutputStream tu le construis avec quoi? à partir d'un outputstream qui est lec
 
lec tu le construit comment? en récupérant l'outputstream de la socket
 
donc qd tu fais un close sur out bin tu fais un close sur le out de ta socket. C'est tout à fait normal.
 
Voir la source de socket et de la méthode getOutputStream
 
:hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 10:42:23    

DarkLord a écrit :

réfléchis un peu ;-)
 
Ton objectOutputStream tu le construis avec quoi? à partir d'un outputstream qui est lec
 
lec tu le construit comment? en récupérant l'outputstream de la socket
 
donc qd tu fais un close sur out bin tu fais un close sur le out de ta socket. C'est tout à fait normal.
 
Voir la source de socket et de la méthode getOutputStream
 
:hello:


 
yep vu comme ca ca parait coherent mais je pensais que avec le getOutputStream je me "rattachais" au flux de sortie de la so ket mais sans pour autant me l'accaparé ( donc ne pas fermer la socket a la fermeture du buffer ) :(
j'ai matter la doc et je ne vois pas quoi utiliser pour avoir un buffer qui prends le flux de sortie de la socket et ne ferme pas la socket avec ;)
 
Tu ne connaitrais pas un methode alternative pour ne pas fermer la socket ? ( pask j'ai en besoin apres ;) )
 
Amicalement qxn

Reply

Marsh Posté le 13-06-2003 à 11:11:20    

Tout simplement tu n'appelles pas les methodes "close" sur tes stream.
Tu le fais uniquement lorque que tu veux fermer la socket.

Reply

Marsh Posté le 13-06-2003 à 11:24:20    

phnatomass a écrit :

Tout simplement tu n'appelles pas les methodes "close" sur tes stream.
Tu le fais uniquement lorque que tu veux fermer la socket.


 
ah ouais :D
 
et tu refais un new Outpustream alors qu'il y en a déjà un d'ouvert? :D
 
-> Plus sérieusement qxn. Si tu as encore besoin de ton stream tu dois garder la référence de ce stream dans ton workflow et fermer le stream à la fin.
 
Au fond pq appelles tu close si tu en as encore besoin de ta socket?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 12:05:34    

DarkLord a écrit :


 
ah ouais :D
 
et tu refais un new Outpustream alors qu'il y en a déjà un d'ouvert? :D
 
-> Plus sérieusement qxn. Si tu as encore besoin de ton stream tu dois garder la référence de ce stream dans ton workflow et fermer le stream à la fin.
 
Au fond pq appelles tu close si tu en as encore besoin de ta socket?


 
en fait je pensais pas closer la socket ( tu matte je fais pas de recep.close() ) mais bon je pense que je vais definir un buffer qui serait un recep.getOutputStream() et apres je ferai passer ce buffer en parametre a chaque fois et qd j'en ai plus besoin je le ferme et la socket aussi ;)
 
Merci pour tout DarkLord :)

Reply

Marsh Posté le 13-06-2003 à 12:09:47    

qxn a écrit :


 
en fait je pensais pas closer la socket ( tu matte je fais pas de recep.close() ) mais bon je pense que je vais definir un buffer qui serait un recep.getOutputStream() et apres je ferai passer ce buffer en parametre a chaque fois et qd j'en ai plus besoin je le ferme et la socket aussi ;)
 
Merci pour tout DarkLord :)


 
bah de rien ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 12:14:02    

Pourquoi dark est aussi aimable :heink:
Ca cache qqchose...
[:neowen]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-06-2003 à 12:23:18    

Harkonnen a écrit :

Pourquoi dark est aussi aimable :heink:
Ca cache qqchose...
[:neowen]


 
ta gueule gros laid :o


---------------
Just because you feel good does not make you right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed