Newsgroup: it.comp.www.php
Titolo: salvare un socket descriptor

Ciao,
sto provando le socket in PHP e avrei un quesito
io creo una connessione client (TCP per esempio) e mi salvo il socket
descriptor ritornato in una variabile che salvo in una sessione. Questo
perche' ho la necessita' in varie pagine del mio sito di usare questa
connessione che ho aperto.
ho notato pero' che se provo ad usarla cosi, ad esempio alla chiamata di
una socket_write(), mi viene ritornato l'errore che gli sto passando un
intero invece che una risorsa
ovviamente io non ho fatto nessuna socket_close() nel frattempo
e' possibile fare quello che mi serve? non e' che alla chiusura della
pagina in cui creo la socket mi dealloca anche la risorsa e quindi mi
perdo il socket descriptor anche se provo a salvarlo? esiste un modo per
fare quello che cerco?
Grazie
Ste
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 esiste un modo per fare quello che cerco?
cosa vuoi fare?

 cosa vuoi fare?
vorrei fare la connect una volta sola e poi portarmi dietro il socket
descriptor in modo da poter interagire con il server a cui mi sono
connesso per tutta la durata della sessione nelle varie pagine del sito
o se no ogni volta che ho bisogno di comunicare con questo host devo
rifare la connessione da capo? non c'e' alternativa?


 
http://php.net/pfsockopen
-- 
www.iuz-lab.info

 
http://php.net/pfsockopen
non sembra funzionare lo stesso
nel senso, io apro la connessione con questa funzione in una pagina e mi
salvo 
il socket descriptor (o puntatore a file in realta') in una variabile
salvata in una sessione. Quando provo in un altra pagina a riusare questa
socket (usando la variabile di sessione) per mandare un messaggio (con
fwrite) mi da l'errore: Warning: fwrite(): supplied argument is not a
valid stream resource


 non sembra funzionare lo stesso
Se usi la funzione che ti ha sugerito iux, non serve che provi a 
salvare la risorsa in sessione (cosa che tra l'altro non puoi manco 
fare).
Se chiami quella funzione in uno script, negli altri non servirebbe che 
la richiamassi più, perché la sessione è già inizializzata. Prova. :-)
--
rob4you

> iux
ops...iuz.
Diciamo che con il tuo "roby4you" siamo pari. :-)
--
rob4you

 la richiamassi più, perché la sessione è già inizializzata. Prova. :-)
domanda: ma nelle altre pagine cosa gli passo ad esempio alla fwrite come
file descriptor? se non la salvo da qualche parte non me lo perdo?


 ovviamente io non ho fatto nessuna socket_close() nel frattempo
Credo che sia stato l'interprete PHP alla fine dello script a chiudere
la socket per te.
D'altra parte, lo script è finito ...
Scherzi a parte, ma non credo sia possibile mantenere attiva una
connessione tra uno script ed un altro.
Ciao,
   Fabrizio
=== 
http://www.negusweb.it
 ===

 file descriptor? se non la salvo da qualche parte non me lo perdo?
In pratica, se anche nelle altre pagine metti la stessa funzione 
pfsockopen, cos' come hai fatto nella prima, se php trova che è già 
aperta una connessione verso quell'host, non dovrebbe aprire una nuova 
connessione, ma semplicemente restituirà la risorsa della connessione 
già aperta.
Un po' come succede con le connessioni persistenti ai db (es. in MySQL 
dai una lettura a mysql_pconnect per capire un po' come funziona la 
restituzione della risorsa).
--
rob4you

 Diciamo che con il tuo "roby4you" siamo pari. :-)
Questa si chiama vendetta.
Ciao. :)
Maverick
-- 
ĢChe non siete pių liberi di non avere una casa con letto per dormire.
 Lavorate voi - schiavi dei soldi - che non sentite la puzza della
 schiavitų!ģ (a Mario di Monte Mario, Roma) # 
http://libre.netsons.org/

 Questa si chiama vendetta.
[..]
;-) ..
-- 
www.iuz-lab.info