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