|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2016
Messaggi: 4
|
Funzione socket_accept php
Salve a tutti, avrei un quesito per il quale non sono riuscito a trovare risposte in rete.....
Mi sto avvicinando al mondo della programmazione php, piu precisamente nella comunicazione tra socket. La mia domanda può essere divisa in due: -Quando sono presenti richieste di connessione in lista sul socket (TCP), nel momento che eseguo socket_accept(.....) quanto impiega (in caso di successo) a stabilirsi la connessione? è immediata? è gia stato eseguito in precedenza alla prima richiesta del client il 3 handshake e l'accept convalida solo l'operazione? -E' possibile eseguire dei fork() prima dell'accept in modo di avere più processi figli contenenti socket_accept (sullo stesso descrittore) e suddividere così in caso di numerose richieste il lavoro ed evito di avere connessioni rifiutate o creo errori in quanto ho la stessa funzione ripetuta che si contende la stessa risorsa? Grazie Ultima modifica di assiro80 : 04-10-2016 alle 09:03. Motivo: aggiunta info |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
ciao,
non sono sicuro di aver compreso bene le tue domande e cosa devi fare. in ogni caso le performance dipendono dal processore/ram e dalla rete. prova ad usare jmeter per fare dei test di carico. per il fork, dai un occhio quà: http://www.hackingwithphp.com/16/1/3...ultiprocessing attenzione che php non nasce come multithread e se con php7 o hhvm migliora non è la tecnologia giusta per queste cose (in linea di massima, dipende cosa devi fare ovviamente) ciao ps. carina anche questa, un po' come approccia nodejs https://www.mullie.eu/parallel-proce...i-tasking-php/ ma nel caso tanto vale usare node.
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it Ultima modifica di les2 : 04-10-2016 alle 10:11. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2016
Messaggi: 4
|
Grazie mille della risposta....... Si, forse ho inserito molte richieste alla rinfusa..... quello che più mi premeva era sapere se la funzione socket_accept() instaura immediatamente (pochi microsecondi)la connessione con il client o può avere tempi di attesa lunghi(millisecondi o più )..... ovvero se nel momento della chiamata della funzione in questione questa deve trasmettere e ricevere dati dal client per confermare la connessione o questo è già stato fatto prima di essere messo in coda da socket_listen() e quindi la funzione socket_accept è praticamente immediata??
Spero di essere stato un po' più chiaro..... ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
dovrebbe partire quando il client la ingaggia + il tempo di latenza del tuo server (velocità processore + carico di lavoro).
socket listen lo mette in attessa e accept accetta... quindi si, può anche avere tempi lunghi. dipende da come l'hai scritta. valuta un aiuto con dei task
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Oct 2016
Messaggi: 4
|
Purtroppo no ho nessun modo di valutare su server in quanto sto affrontando l'argomento solo in maniera teorica e spesso riscontro dubbi per i quali non riesco a trovare in rete e sui libri risposte esaustive.
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
è che sei rimasto molto nel teorico...
poi nel caso pratico l'unica è provare se si parla di test, o avere un quadro più ampio per fare valutazioni concrete. se vuoi un maggior numero di richieste al secondo (parlando di performance pure e non calate sull'esigenza) valuta un linguaggio compilato tipo golang o java o se vuoi lo scripting node (che sia per l'asincrono sia per le performance pure guadagna). oppure se sei su php e puoi usare hhvm scrivi in hack e valuta il multithrad o dei task appunto. ma stiamo parlando molto genericamente ![]()
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
ps. su una cosa simile peraltro con node ho spesso errori su un batch che gira, la cui gestione in asincrono è più difficoltosa, tienine conto.
(storicizzo dei json pesantucci, per farlo in breve tempo ne uso 200 in concorrenza ma ho circa un 1000 scarti da rigirare, su php o java non succede nel mio caso, non ho tempo di gestirlo e forse le librerie che uso sono ancora immature).
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Oct 2016
Messaggi: 4
|
Sei stato molto gentile.....grazie!!!
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:56.