inputStream d'un Process : flusher windows? - Java - Programmation
Marsh Posté le 08-05-2003 à 18:57:11
ben à priori tu peux rien lire tant que y'a rien à lire
Marsh Posté le 08-05-2003 à 21:02:40
ReplyMarsh Posté le 08-05-2003 à 21:06:10
Cherrytree a écrit : C'est quoi la commande rasdial ? |
http://forum.hardware.fr/forum2.ph [...] 78#t382461
Marsh Posté le 08-05-2003 à 21:41:12
-- je suis d'acord c sur
le bleme c que en ligne de commande la commande rasdial affiche les infos au fur et a mesur genre : "connexion en coure" puis ensuite "connexion établie" mais quand je lit l'inputStream il me balance tout d'un seul coup==> l'utilisateur et content avec ça!!
==> donc je veux pouvoir afficher au fur et a mesur : comme si ct la consol!
merci de m'aider (ou d'essayer
Marsh Posté le 08-05-2003 à 21:42:58
ha bon
beh euh
ché pas.
voir les differentes façons de lire les inputstream...
Marsh Posté le 08-05-2003 à 21:46:24
g éssayer de lire char par char (byte .. hum) enfin ça fait pareil le read se bloque et ne se débloque qu'a la fin d'ou mon idée faire un flush sur tampon du flux de sortie de windows mais je sais pas faire...
Marsh Posté le 08-05-2003 à 21:47:10
vois les differents inputstream alors, jsais pas.
Marsh Posté le 08-05-2003 à 21:52:53
d'accord mais la methode esrt
:process.getInputStream()
==> donc g pas le choix de l'objet!!!!
Marsh Posté le 08-05-2003 à 21:57:53
artemice a écrit : d'accord mais la methode esrt |
bah j'en sais rien
Marsh Posté le 08-05-2003 à 21:59:49
ReplyMarsh Posté le 11-05-2003 à 16:26:32
montre ton code déjà ... Ton code fait ce que tu dis mais peut etre que tu te plantes
Marsh Posté le 12-05-2003 à 09:26:01
voila mon code...
création du process :
public void connect(String connexion,String pseudo,String passe) throws RemoteException
{
StringTokenizer ana = new StringTokenizer(connection," " );
commande=ana.nextToken();
con=ana.nextToken();
pseu=ana.nextToken();
pas=ana.nextToken();
if (!(con.equals(connexion)&&pseu.equals(pseudo)&&pas.equals(passe)))
{
String nouv= commande+" "+connexion+" "+pseudo+" "+passe;
cop.setParams("CONNECT",nouv);
connection=nouv;
}
nbClients++;
if (nbClients>0)
{
try
{
pConn=Runtime.getRuntime().exec(connection);
}
catch(Exception ex)
{
System.out.println("problem pour lancer la connection"+ex);
}
}
}
fonction qui renvoie (appel périodique du client) les sortie consoles!
public String getInputStreamProcess() throws RemoteException
{
if (pConn!=null)
{
try
{
byte[] tab=new byte[1000];
System.out.println("avant" );
pConn.getInputStream().read(tab);
System.out.println("aprés" );
String tmp = new String (tab);
CRprocess=CRprocess+tmp;
}
catch (Exception ex)
{
System.out.println("pb avec io.. "+ex);
}
return CRprocess;
}
else
return null;
}
Marsh Posté le 12-05-2003 à 09:40:26
bin ton read sur le tableau là il bloque hein (voir la javadoc pour plus de détails)
Marsh Posté le 12-05-2003 à 10:13:43
C ce que je me suis dit!!! mais en lisant byte par byte (déjà dit) ça fait parreil... donc c pour ça que je voudrait fluscher win...
Marsh Posté le 08-05-2003 à 18:37:37
La question peu peut etre sembler niaise mais l'InputStream de la commande rasdial ne libère le flot de byte que une fois que la commande et fini.. comment je peux faire pour lire les sorties en temps réel?
merci d'avance