ho PESANTEMENTE aggiornato la classe 
ancora manca del sistema di gestione delle callback xche sono ancora indeciso se usare per l'appunto le callback o l'estensione della classe.
Ho aggiornato doEvents, inoltre ho centralizzato il sistema per il cambio dello stato e degli errori in modo da poter inserire un'apposita callback per quando si cambia stato o si verifica un'errore. Ho anche completato la funzione Write
Manca ancora la funzione read ma non è un problema, xche prima devo completare doEvents, dato che read leggerà da un buffer interno alla classe e non dalla socket (e questo buffer verrà appunto riempito nel metodo doEvents)
Ho definito nel TODO alcune nuove funzioni
la funzione listen non farà altro che impostare in ascolto la socket e impostare lo stato
qui c'è un codicillo di esempio
codice:
<?php
require_once('Socket.class.php');
$clsSocket = &new clsSocket();
$clsSocket->bind('192.168.0.4', 80);
$clsSocket->connect('www.google.it', 80);
while (1) {
$clsSocket->doEvents();
if ($clsSocket->state = S_SOCKET_CONNECTED) {
break;
}
}
echo "Connesso a www.google.it:80\n";
echo "Invio richiesta HTTP\n";
$clsSocket->write("GET / HTTP/1.0\r\nHOST: www.google.it\r\n\r\n");
$start = time();
while(($start+10)>time()) {
$clsSocket->doEvents();
}
echo "Connessione a www.google.it:80 chiusa\n";
$clsSocket->close();
?>
a breve, torno da un'assistenza, e posto uno zip 
xora è possibile inviare solo i dati, e non leggerli, e non ci sono ancora le callbacks, tanto che nel while controllo se la connessione avviene o meno in base allo stato
cmq...ditemi che ne dite
DD