26. maj 2003 - 10:23Der er
9 kommentarer og 1 løsning
Socket kodning / telnet
Hej,
Jeg er ved at lave et program, som skal kunne sende og modtage data fra en telnet-session til en router. Jeg kan godt få forbindelse til routeren, og få printet linierne med, at jeg skal indtaste pwd, men de kommer så hurtigt, at jeg ikke kan nå at sende en streng med gyldigt pwd den anden vej. Hvordan "pauser" jeg modtagelse, eller validerer modtagelsen, så ledes at jeg kan vente på, hvad der kommer ind, validere det, og evt. sende en ny kommando den anden vej?
Jeg skriver lige koden med for en ordens skyld. Håber at I kan hjælpe...:
$fp = fsockopen ($IPNr, $PortNr, $errno, $errstr, 5); if (!$fp) { echo "telnet forbindelse offline"; } else {
Note: If you need to set a timeout for reading/writing data over the socket, use socket_set_timeout(), as the timeout parameter to fsockopen() only applies while connecting the socket.
i din fputs linie slutter du af med 2 linieskift efter hinanden. er du sikker på det er korrekt? og sikker på at der skal bruges både \r og \n til et linieskift? det kan være det er nok med \r
Den timeout du sætter i fsockopen() er kun gældende for hvor længe der skal ventes på at sytemet i den anden ende svarer. den timeout der sættes med stream_set_timeout() gælder for læsning fra socketen (fgets()), og skrivning til socketen (fputs()).
>>sostack Vil du ikke nok hjælpe mig med det eksempel med eks. password indtastning så? Jeg har bare brug for læsning af linien med password, sende en streng med password og læse en ny linie... og password indtastningen er blot et eksempel... Jeg skal kunne læse og skrive til routeren og altså holde en "dialog" igang, som jeg selv kan styre med IF og CASE sætninger...
Håber virkelig at du kan hjælpe mig.. Det ser lysere ud allerede
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.