Genymus
03-08-2011, 22:21
Salve, sto sviluppando un proxy in PHP che ha il compito di rimanre in ascolto su una porta e di fungere (come da nome) da proxy...
il codice funziona, ma con un'unico problema:
la connessione avviene una sola volta.... mi spiego meglio:
Quando il browser chiede la pagina al server invia un header di richiesta a cui il server risponde con l'header di risposta e l'eventuale codice html richiesto (ma questo voi lo sapete già!), in effetti è quello che il mio codice fa, l'unico problema è quando carico pagine contenenti immagini (di cui, per ognuna di esse, il browser crea una richiesta).
Il server si blocca (non capisco perchè) e non mi carica più niente.
Posto il codice [per una migliore leggibilità ho deciso di "allegare" i file txt]:
Versione 1 (a ciclo bloccato):
http://www.genymus.it/files/public/hwuf/gproxy_hwu_v1_r001_03082011.txt
Versione 2 (con "socket_set_nonblock"):
http://www.genymus.it/files/public/hwuf/gproxy_hwu_v2_r000_03082011.txt
è possibile dirmi dove sbaglio? Mi va anche bene che mi spieghiate come gestire le multiconnessioni in entrata... Grazie mille.
PS: Per ogni possibile suggerimento, sono in listen pure io.
PS2: se vi viene in mente di provare il proxy, tenete a portata di mano il task manager e soprattutto (IMPORTANTISSIMO) NON provatelo in remoto, ma solo in locale.
(Giusto come assicurazione) IO... Genymus, non mi assumo la responsabilità di danni, disservizi etc... causati dal mio codice sopra citato...
[Scusate se scrivo di tutto ciò, ma è successo che una persona (di cui preferisco non parlare), mi voleva citare in giudizio per un blocco del server aziendale causato da un'altro script php, (in fase di lavorazione e prodotto da me) che il destinatario ha deciso di provare direttamente sul server senza consultarmi. La colpa quindi (a rigor di logica) era sua visto che non gli avevo dato il via libera all'esecuzione].
il codice funziona, ma con un'unico problema:
la connessione avviene una sola volta.... mi spiego meglio:
Quando il browser chiede la pagina al server invia un header di richiesta a cui il server risponde con l'header di risposta e l'eventuale codice html richiesto (ma questo voi lo sapete già!), in effetti è quello che il mio codice fa, l'unico problema è quando carico pagine contenenti immagini (di cui, per ognuna di esse, il browser crea una richiesta).
Il server si blocca (non capisco perchè) e non mi carica più niente.
Posto il codice [per una migliore leggibilità ho deciso di "allegare" i file txt]:
Versione 1 (a ciclo bloccato):
http://www.genymus.it/files/public/hwuf/gproxy_hwu_v1_r001_03082011.txt
Versione 2 (con "socket_set_nonblock"):
http://www.genymus.it/files/public/hwuf/gproxy_hwu_v2_r000_03082011.txt
è possibile dirmi dove sbaglio? Mi va anche bene che mi spieghiate come gestire le multiconnessioni in entrata... Grazie mille.
PS: Per ogni possibile suggerimento, sono in listen pure io.
PS2: se vi viene in mente di provare il proxy, tenete a portata di mano il task manager e soprattutto (IMPORTANTISSIMO) NON provatelo in remoto, ma solo in locale.
(Giusto come assicurazione) IO... Genymus, non mi assumo la responsabilità di danni, disservizi etc... causati dal mio codice sopra citato...
[Scusate se scrivo di tutto ciò, ma è successo che una persona (di cui preferisco non parlare), mi voleva citare in giudizio per un blocco del server aziendale causato da un'altro script php, (in fase di lavorazione e prodotto da me) che il destinatario ha deciso di provare direttamente sul server senza consultarmi. La colpa quindi (a rigor di logica) era sua visto che non gli avevo dato il via libera all'esecuzione].