(PHP 4 >= 4.1.0, PHP 5)
socket_create — Crea un socket (punto terminale di una comunicazione).
$dominio
      , int $tipo
      , int $protocollo
      )La funzione crea un punto terminale di una comunicazione (un socket) e restituisce una risorsa di tipo socket. In una tipica connessione di rete si hanno 2 sockets, uno con il ruolo di client e l'altro con il ruolo di server.
     Il parametro dominio indica il dominio (famiglia di 
     protocolli da usarsi per la comunicazione tra i sockets). 
    
| Dominio | Descrizione | 
|---|---|
| AF_INET | Protocollo Internet basato su IPv4. TCP e UDP sono i protocolli più comuni di questa famiglia. | 
| AF_INET6 | Protocolli basati su IPv6. TCP ed UDP sono i protocolli più comuni di questa famiglia. Il supporto a questa famiglia è stato aggiunto in PHP 5.0.0. | 
| AF_UNIX | Famiglia di protocolli per le comunicazioni locali. L'alta efficenza ed il basso overhead ne fanno una buona forma di IPC (comunicazione inter-processo). | 
     Il parametro tipo indica il tipo di comunicazione
     da usare con il socket.
    
| Tipo | Descrizione | 
|---|---|
| SOCK_STREAM | Fornisce una connessione sequenziale, affidabile e full-duplex. Può essere supportato un meccanismo di trasmissione fuori-banda. Il protocollo TCP è basato su questo tipo di socket. | 
| SOCK_DGRAM | Supporta i datagrammi (privo di connessione, messaggi inaffidabili di una lunghezza massima prefissata). Il protocollo UDP è basato su questo tipo di socket. | 
| SOCK_SEQPACKET | Fornisce una trasmissione di dati sequenziale, affidabile, bi-direzionale per i datagrammi di lunghezza massima prefissata; all'utilizzatore è richiesto di leggere l'intero pacchetto in ogni esecuzione della funzione di lettura dal socket. | 
| SOCK_RAW | Fornisce un'accesso raw al protocollo di rete. Questo tipo di socket può essere utilizzato per costruire manualmente qualsiasi tipo di protocollo. Un comune utilizzo di questa tipologia di socket è la realizzazione di richieste ICMP (tipo il ping o traceroute). | 
| SOCK_RDM | Fornisce un'interfaccia affidabile per i datagrammi ma non ne garantisce l'ordine. Probabilmente questo non è implementato nel vostro sistema operativo. | 
     Il parametro protocollo indica 
     lo specifico protocollo nel dominio indicato da usarsi
     con il socket restituito. Il valore opportuno può essere recuperato
     utilizzando getprotobyname(). Se il protocollo 
     desiderato è il TCP o l'UDP, si possono utilizzare le corrispondenti costanti
     SOL_UDP e SOL_TCP. 
    
| Nome | Descrizione | 
|---|---|
| icmp | L'Internet Control Message Protocol viene utilizzato principalmente dai gateway e dagli host per riportare errori nelle comunicazioni con datagrammi. Il comando "ping" (presente in quasi tutti i moderni sistemi operativi) è un esempio dell'applicazione di ICMP. | 
| udp | Lo User Datagram Protocol è un protocollo privo di connessione, inaffidabile con record di lunghezza fissa. Per questo l'UDP richiede poco overhead di protocollo. | 
| tcp | Il Transmission Control Protocol è un procotollo affidabile, basato sulla connessione, orientato al flusso, full duplex. Il TCP garantisce che tutti i pacchetti siano ricevuti nel medesimo ordine in cui siano stati inviati. Se un pacchetto viene perso durante la trasmissione, il TCP provvederà automaticamente alla ritrasmissione fino a quando l'host remoto non conferma la ricezione dello stesso. Per ragioni di affidabilità e di prestazioni, è il TCP stesso a decidere l'appropriata dimensione dei pacchetti del sottostante livello di datagrammi. Pertanto le applicazioni TCP devono permettere la parziale ritrasmissione di un record. | 
     La funzione restituisce una risorsa di tipo socket se ha successo, oppure FALSE in caso di errore. 
     In quest'ultimo caso si può ottenere il codice di errore tramite 
     socket_last_error(). Tale codice può essere
     passato alla funzione socket_strerror()
     per ottenere una descrizione dell'errore.
    
Nota:
Se si forniscono valori non validi per
dominiootipo, la funzione socket_create() imposta i parametri rispettivamente aAF_INETeSOCK_STREAMed emette un messaggio di tipoE_WARNING.
Vedere anche socket_accept(), socket_bind(), socket_connect(), socket_listen(), socket_last_error() e socket_strerror().