Esageri dai ^_^Originariamente inviato da shishii
Complimenti...
mi pare una buona idea.![]()
CMQ voglio dire, che mi ero scordato, che la banda in upload può essere limitata.
Che i pacchetti inviati sono compressi con ZLIB se chi lo riceve usa la stessa libreria.
Che i pacchetti inviati possono non essere solo stringhe di testo.
Un po' di tempo fa creai una libreria che convertiva un HASH di PERL in una stringa binaria. Se questo HASH conteneva nei valori altri HASH veniva fatto anche il dump di tutti gli altri HASH.
Ho deciso quindi di aggiungere questa possibilità nella libreria.
Se inviamo un HASH di 500KB, l'altro client che riceve verrà avverito della possibilità di leggere da quello socket solo quando il pacchetto sarà arrivato in modo completo dall'altra parte.
Verrà estratto il tutto e ritornerà un riferimento ad un HASH.
In questo modo le comunicazioni saranno più facili.
Sfortuatamente non è a prova di Lamer e non garantisco la sua stabilità nel caso i dati da analizzare risultino formattati male (magari appositamente) per far crashare il tutto.
Per le altre cose leggete la guida allegata.
Nel caso il codice fosse mal formattato, usato il pulsante quata per averlo in maniera integrale.
L'esempio che è allegato al codice mostra come creare un portscanner molto rapido su qualsiasi indirizzo Ip. Il bello è che possiamo fare un port scanner mentre inviamo un file di 1GB e ne stiamo ricevendo uno da 2GB.
Fate conto di inviare su uno socket un pacchetto di 1MB °_°.
Durante la chiamata selecrt avvengono molte operazioni.
Non appena tutto il buffer viene svuotato voi verrete avvisati che quello socket non contiene più dati da spedire.
Se volete potete ignorare il messaggio, al contrario potete riempire nuovamente il buffer.
Limitando di quanto volete la banda in upload.
Basta, mi sto dilungando troppo.
Bye Bye.
X shishii
Se keyforum avesse da subito usato questa libreria sarebbe stato un vero spasso, senza il minimo bisogno di creare altri processi.
Avrebbe potuto gestire contemporaneamente (e facilmente) gli socket del webserver e gli socket del core.
Peccato.![]()