mirror of
https://github.com/php/doc-it.git
synced 2026-03-24 15:42:46 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/it/trunk@314557 c90b9560-bf6c-de11-be94-00142212c4b1
218 lines
7.8 KiB
XML
218 lines
7.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- splitted from ./it/functions/sockets.xml, last change in rev 1.1 -->
|
|
<!-- last change to 'socket-create' in en/ tree in rev 1.4 -->
|
|
<!-- EN-Revision: n/a Maintainer: darvina Status: ready -->
|
|
<!-- OLD-Revision: 1.34/EN.1.4 -->
|
|
<refentry xml:id="function.socket-create" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>socket_create</refname>
|
|
<refpurpose>Crea un socket (punto terminale di una comunicazione).</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Descrizione</title>
|
|
<methodsynopsis>
|
|
<type>resource</type><methodname>socket_create</methodname>
|
|
<methodparam><type>int</type><parameter>dominio</parameter></methodparam>
|
|
<methodparam><type>int</type><parameter>tipo</parameter></methodparam>
|
|
<methodparam><type>int</type><parameter>protocollo</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
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.
|
|
</para>
|
|
<para>
|
|
Il parametro <parameter>dominio</parameter> indica il dominio (famiglia di
|
|
protocolli da usarsi per la comunicazione tra i sockets).
|
|
</para>
|
|
<table>
|
|
<title>Famiglie di indirizzi/protocolli disponibili</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Dominio</entry>
|
|
<entry>Descrizione</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>AF_INET</entry>
|
|
<entry>
|
|
Protocollo Internet basato su IPv4. TCP e UDP sono i protocolli
|
|
più comuni di questa famiglia.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>AF_INET6</entry>
|
|
<entry>
|
|
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.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>AF_UNIX</entry>
|
|
<entry>
|
|
Famiglia di protocolli per le comunicazioni locali. L'alta efficenza
|
|
ed il basso overhead ne fanno una buona forma di IPC (comunicazione inter-processo).
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para>
|
|
Il parametro <parameter>tipo</parameter> indica il tipo di comunicazione
|
|
da usare con il socket.
|
|
</para>
|
|
<table>
|
|
<title>Tipi di socket disponibili</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Tipo</entry>
|
|
<entry>Descrizione</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>SOCK_STREAM</entry>
|
|
<entry>
|
|
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.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>SOCK_DGRAM</entry>
|
|
<entry>
|
|
Supporta i datagrammi (privo di connessione, messaggi inaffidabili di una lunghezza massima prefissata).
|
|
Il protocollo UDP è basato su questo tipo di socket.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>SOCK_SEQPACKET</entry>
|
|
<entry>
|
|
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.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>SOCK_RAW</entry>
|
|
<entry>
|
|
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).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>SOCK_RDM</entry>
|
|
<entry>
|
|
Fornisce un'interfaccia affidabile per i datagrammi ma non ne garantisce l'ordine.
|
|
Probabilmente questo non è implementato nel vostro sistema operativo.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para>
|
|
Il parametro <parameter>protocollo</parameter> indica
|
|
lo specifico protocollo nel <parameter>dominio</parameter> indicato da usarsi
|
|
con il socket restituito. Il valore opportuno può essere recuperato
|
|
utilizzando <function>getprotobyname</function>. Se il protocollo
|
|
desiderato è il TCP o l'UDP, si possono utilizzare le corrispondenti costanti
|
|
<constant>SOL_UDP</constant> e <constant>SOL_TCP</constant>.
|
|
</para>
|
|
<table>
|
|
<title>Protocolli comuni</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Nome</entry>
|
|
<entry>Descrizione</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>icmp</entry>
|
|
<entry>
|
|
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.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>udp</entry>
|
|
<entry>
|
|
Lo User Datagram Protocol è un protocollo privo di connessione,
|
|
inaffidabile con record di lunghezza fissa. Per questo l'UDP
|
|
richiede poco overhead di protocollo.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>tcp</entry>
|
|
<entry>
|
|
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.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para>
|
|
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
|
|
<function>socket_last_error</function>. Tale codice può essere
|
|
passato alla funzione <function>socket_strerror</function>
|
|
per ottenere una descrizione dell'errore.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Se si forniscono valori non validi per
|
|
<parameter>dominio</parameter> o <parameter>tipo</parameter>,
|
|
la funzione <function>socket_create</function> imposta i parametri
|
|
rispettivamente a <constant>AF_INET</constant> e <constant>SOCK_STREAM</constant>
|
|
ed emette un messaggio di tipo <constant>E_WARNING</constant>.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
Vedere anche
|
|
<function>socket_accept</function>,
|
|
<function>socket_bind</function>,
|
|
<function>socket_connect</function>,
|
|
<function>socket_listen</function>,
|
|
<function>socket_last_error</function> e
|
|
<function>socket_strerror</function>.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|