mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-25 17:32:07 +01:00
564 lines
20 KiB
XML
Executable File
564 lines
20 KiB
XML
Executable File
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 0ff45f21e8633bccf996a1907bfe6d3d6f415f69 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<refentry xml:id="function.socket-get-option" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>socket_get_option</refname>
|
|
<refpurpose>Lit les options du socket</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type class="union"><type>array</type><type>int</type><type>false</type></type><methodname>socket_get_option</methodname>
|
|
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
|
|
<methodparam><type>int</type><parameter>level</parameter></methodparam>
|
|
<methodparam><type>int</type><parameter>option</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
<function>socket_get_option</function> récupère la valeur de l'option
|
|
spécifiée par le paramètre <parameter>option</parameter> pour le socket
|
|
spécifié par le paramètre <parameter>socket</parameter>.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>socket</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Une instance de <classname>Socket</classname> créée par
|
|
<function>socket_create</function> ou <function>socket_accept</function>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>level</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Le paramètre <parameter>level</parameter> spécifie la couche de
|
|
protocole de l'option. Par exemple, pour connaître les options de
|
|
la couche socket, la valeur <constant>SOL_SOCKET</constant> du paramètre
|
|
<parameter>level</parameter> sera utilisée. Les autres degrés, comme
|
|
<constant>TCP</constant>, peuvent être utilisés en spécifiant le
|
|
numéro du protocole de cette couche. Les numéros de protocoles
|
|
peuvent être trouvés en utilisant la fonction
|
|
<function>getprotobyname</function>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>option</parameter></term>
|
|
<listitem>
|
|
<table>
|
|
<title>Options disponibles pour les sockets</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Option</entry>
|
|
<entry>Description</entry>
|
|
<entry>Type</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><constant>SO_DEBUG</constant></entry>
|
|
<entry>
|
|
Reporte si les informations de débogage sont enregistrées ou pas.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_BROADCAST</constant></entry>
|
|
<entry>
|
|
Reporte si la transmission des annonces globales est supportée ou pas.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_REUSEADDR</constant></entry>
|
|
<entry>
|
|
Indique si les adresses locales peuvent être réutilisées ou pas.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_REUSEPORT</constant></entry>
|
|
<entry>
|
|
Indique si les ports locaux peuvent être réutilisés.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_KEEPALIVE</constant></entry>
|
|
<entry>
|
|
Reporte si les connexions sont persistantes avec des transmissions
|
|
périodiques de messages ou pas. Si le socket connecté échoue en
|
|
réponse à ces messages, la connexion est interrompue et le processus
|
|
écrira sur ce socket une notification avec un signal SIGPIPE.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_LINGER</constant></entry>
|
|
<entry>
|
|
<para>
|
|
Reporte si le socket <parameter>socket</parameter> s'attarde sur
|
|
la fonction <function>socket_close</function> si des données sont
|
|
présentes ou pas. Par défaut, lorsque le socket est fermé,
|
|
<function>socket_close</function> tente d'envoyer toutes les
|
|
données qui ne l'ont pas encore été.
|
|
</para>
|
|
<para>
|
|
Si <varname>l_onoff</varname> ne vaut pas zéro et que
|
|
<varname>l_linger</varname> vaut zéro, toutes les données
|
|
qui n'ont pas encore été envoyées seront annulées et RST
|
|
(réinitialisation) sera envoyé dans le cas d'une connexion
|
|
orientée socket.
|
|
</para>
|
|
<para>
|
|
D'un autre côté, si <varname>l_onoff</varname> ne vaut pas zéro
|
|
et <varname>l_linger</varname> ne vaut pas zéro,
|
|
<function>socket_close</function> bloquera tant que les données
|
|
non envoyées ne le seront pas ou pendant le temps spécifié par
|
|
<varname>l_linger</varname>. Si le socket est non-bloquant,
|
|
<function>socket_close</function> échouera et retournera une
|
|
erreur.
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<type>array</type>. Le tableau contiendra 2 clés :
|
|
<varname>l_onoff</varname> et
|
|
<varname>l_linger</varname>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_OOBINLINE</constant></entry>
|
|
<entry>
|
|
Reporte si le socket <parameter>socket</parameter> part sur des données en
|
|
ligne out-of-band ou pas.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_SNDBUF</constant></entry>
|
|
<entry>
|
|
Reporte les informations sur la taille du tampon envoyé.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_RCVBUF</constant></entry>
|
|
<entry>
|
|
Reporte les informations sur la taille du tampon reçu.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_ERROR</constant></entry>
|
|
<entry>
|
|
Reporte les informations sur le statut de l'erreur et le vide.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type> (ne peut être défini par la fonction
|
|
<function>socket_set_option</function>)
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_TYPE</constant></entry>
|
|
<entry>
|
|
Reporte le type de le socket <parameter>socket</parameter> (e.g.
|
|
<constant>SOCK_STREAM</constant>).
|
|
</entry>
|
|
<entry>
|
|
<type>int</type> (ne peut être défini par la fonction
|
|
<function>socket_set_option</function>)
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_DONTROUTE</constant></entry>
|
|
<entry>
|
|
Reporte si les messages sortants dévient les équipements standard de cheminement.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_RCVLOWAT</constant></entry>
|
|
<entry>
|
|
Reporte le nombre minimal d'octets au processus pour les opérations
|
|
entrantes sur le socket <parameter>socket</parameter>.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_RCVTIMEO</constant></entry>
|
|
<entry>
|
|
Reporte la valeur du délai d'exécution pour les opérations entrantes.
|
|
</entry>
|
|
<entry>
|
|
<type>array</type>. Le tableau contiendra 2 clés :
|
|
<varname>sec</varname> qui est la partie représentant les secondes
|
|
de la valeur du délai d'attente et <varname>usec</varname> qui est
|
|
la partie représentant les microsecondes.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_SNDTIMEO</constant></entry>
|
|
<entry>
|
|
Reporte la valeur du délai d'exécution spécifiant le temps maximal d'exécution
|
|
pour les fonctions sortantes bloquantes parce que la commande d'écoulement
|
|
empêche des données d'être envoyé.
|
|
</entry>
|
|
<entry>
|
|
<type>array</type>. Le tableau contiendra 2 clés :
|
|
<varname>sec</varname>qui est la partie représentant les secondes
|
|
de la valeur du délai d'attente et <varname>usec</varname> qui est
|
|
la partie représentant les microsecondes.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_SNDLOWAT</constant></entry>
|
|
<entry>
|
|
Reporte le nombre minimal d'octets au processus pour les opérations
|
|
sortantes sur le socket <parameter>socket</parameter>.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>TCP_NODELAY</constant></entry>
|
|
<entry>
|
|
Indique si l'algorithme Nagle TCP est désactivé.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>MCAST_JOIN_GROUP</constant></entry>
|
|
<entry>
|
|
Joint un groupe multicast.
|
|
</entry>
|
|
<entry>
|
|
Un tableau avec une clé <literal>"group"</literal>,
|
|
spécifiant une &string; avec les adresses multicast IPv4 ou IPv6
|
|
et une clé <literal>"interface"</literal>, spécifiant soit un
|
|
numéro d'interface (de type <type>int</type>), soit une
|
|
&string; avec le nom de l'interface, comme
|
|
<literal>"eth0"</literal>.
|
|
<literal>0</literal> peut être spécfié pour indiquer que l'interface
|
|
doit être sélectionné en utilisant les règles de routage (ne peut être
|
|
utilisé qu'avec la fonction <function>socket_set_option</function>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>MCAST_LEAVE_GROUP</constant></entry>
|
|
<entry>
|
|
Quitte un groupe multicast.
|
|
</entry>
|
|
<entry>
|
|
Un tableau. Voir la constante <constant>MCAST_JOIN_GROUP</constant>
|
|
pour plus d'informations (ne peut être utilisé qu'avec la fonction
|
|
<function>socket_set_option</function>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>MCAST_BLOCK_SOURCE</constant></entry>
|
|
<entry>
|
|
Paquets de bloc arrivant depuis une source spécifique
|
|
vers un groupe multicast spécifique, qui aura du être joint
|
|
auparavant.
|
|
</entry>
|
|
<entry>
|
|
Un tableau contenant les mêmes clés que celles de la constante
|
|
<constant>MCAST_JOIN_GROUP</constant>, avec une clé supplémentaire
|
|
<literal>source</literal>, lié à une chaîne de caractère spécifiant
|
|
une adresse IPv4 ou IPv6 de la source à bloquer
|
|
(ne peut être utilisé qu'avec la fonction
|
|
<function>socket_set_option</function>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>MCAST_UNBLOCK_SOURCE</constant></entry>
|
|
<entry>
|
|
Débloque (recommence à recevoir) les paquets arrivant depuis
|
|
une source spécifique vers un groupe multicast spécifique,
|
|
qui aura dû être joins auparavant.
|
|
</entry>
|
|
<entry>
|
|
Un tableau au même format que celui de la constante
|
|
<constant>MCAST_BLOCK_SOURCE</constant>
|
|
(ne peut être utilisé qu'avec la fonction
|
|
<function>socket_set_option</function>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>MCAST_JOIN_SOURCE_GROUP</constant></entry>
|
|
<entry>
|
|
Reçoit des paquets destinés à un groupe multicast spécifique
|
|
dont l'adresse source correspond à une valeur spécifique.
|
|
</entry>
|
|
<entry>
|
|
Un tableau au même format que celui de la constante
|
|
<constant>MCAST_BLOCK_SOURCE</constant>
|
|
(ne peut être utilisé qu'avec la fonction
|
|
<function>socket_set_option</function>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>MCAST_LEAVE_SOURCE_GROUP</constant></entry>
|
|
<entry>
|
|
Arrête de recevoir des paquets destinés à un groupe multicast
|
|
spécifique dont l'adresse source correspond à une valeur spécifique.
|
|
</entry>
|
|
<entry>
|
|
Un tableau au même format que celui de la constante
|
|
<constant>MCAST_BLOCK_SOURCE</constant>
|
|
(ne peut être utilisé qu'avec la fonction
|
|
<function>socket_set_option</function>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>IP_MULTICAST_IF</constant></entry>
|
|
<entry>
|
|
L'interface de sortie pour les paquets multicast IPv4.
|
|
</entry>
|
|
<entry>
|
|
Soit un entier spécifiant le numéro de l'interface, soit une
|
|
&string; représentant le nom de l'interface, par exemple,
|
|
<literal>eth0</literal>. La valeur <type>0</type>
|
|
peut être utilisé pour indiquer la table de routage à utiliser
|
|
dans la sélection de l'interface. La fonction
|
|
<function>socket_get_option</function> retourne un index d'interface.
|
|
Notez que, contrairement à l'API C, cette option ne prend pas
|
|
comme argument une adresse IP. Ceci élimine la différence d'interface
|
|
entre les constantes <constant>IP_MULTICAST_IF</constant> et
|
|
<constant>IPV6_MULTICAST_IF</constant>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>IPV6_MULTICAST_IF</constant></entry>
|
|
<entry>
|
|
L'interface de sortie pour les paquets multicast IPv6.
|
|
</entry>
|
|
<entry>
|
|
Identique à la constante <constant>IP_MULTICAST_IF</constant>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>IP_MULTICAST_LOOP</constant></entry>
|
|
<entry>
|
|
La politique de la boucle locale multicast pour les paquets
|
|
IPv4, qui détermine si les paquets multicast envoyés par
|
|
ce socket doivent aussi atteindre les récepteurs du même hôte
|
|
qui ont joint le groupe multicast sur l'interface de sortie
|
|
utilisée par ce socket. C'est le comportement par défaut.
|
|
</entry>
|
|
<entry>
|
|
Un entier (soit <literal>0</literal>, soit <literal>1</literal>).
|
|
Pour la fonction <function>socket_set_option</function>,
|
|
n'importe quelle valeur sera acceptée et sera convertie
|
|
en un booléen suivant les règles habituelles de PHP.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>IPV6_MULTICAST_LOOP</constant></entry>
|
|
<entry>
|
|
Identique à la constante <constant>IP_MULTICAST_LOOP</constant>,
|
|
mais pour l'IPv6.
|
|
</entry>
|
|
<entry>
|
|
Un entier. Voir la constante <constant>IP_MULTICAST_LOOP</constant>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>IP_MULTICAST_TTL</constant></entry>
|
|
<entry>
|
|
La durée de vie des paquets sortants multicast IPv4.
|
|
Ce doit être une valeur comprise entre 0 (ne pas quitter
|
|
l'interface) et 255. Par défaut, la valeur est à 1 (seul
|
|
le réseau local est atteint).
|
|
</entry>
|
|
<entry>
|
|
Un entier entre 0 et 255.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>IPV6_MULTICAST_HOPS</constant></entry>
|
|
<entry>
|
|
Identique à la constante <constant>IP_MULTICAST_TTL</constant>,
|
|
mais pour les paquets IPv6. La valeur -1 est également acceptée,
|
|
signifiant que la route par défaut doit être utilisée.
|
|
</entry>
|
|
<entry>
|
|
Un entier compris entre -1 et 255.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_MARK</constant></entry>
|
|
<entry>
|
|
Définit un identifiant sur le socket pour le but de filtrer
|
|
les packets sur Linux.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_ACCEPTFILTER</constant></entry>
|
|
<entry>
|
|
Ajoute un filtre d'acceptation sur le socket écouté (FreeBSD/NetBSD).
|
|
Un module kernel de filtre d'acceptation doit d'abord être chargé
|
|
sur FreeBSD (e.g. accf_http).
|
|
</entry>
|
|
<entry>
|
|
<type>string</type> name of the filter (length 15 max).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_USER_COOKIE</constant></entry>
|
|
<entry>
|
|
Définit un identifiant sur le socket pour le but de filtrer
|
|
les packets sur FreeBSD.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_DONTTRUNC</constant></entry>
|
|
<entry>
|
|
Conserve les données non-lues.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>SO_WANTMORE</constant></entry>
|
|
<entry>
|
|
Fournit un indice quand plus de données sont prêtes.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><constant>TCP_DEFER_ACCEPT</constant></entry>
|
|
<entry>
|
|
Ne pas notifier un socket qui écoute tant que les données ne sont pas prêtes.
|
|
</entry>
|
|
<entry>
|
|
<type>int</type>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Retourne la valeur de l'option fournie, &return.falseforfailure;.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
&sockets.changelog.socket-param;
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title>Exemple avec <function>socket_get_option</function></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$socket = socket_create_listen(1223);
|
|
|
|
$linger = array('l_linger' => 1, 'l_onoff' => 1);
|
|
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);
|
|
|
|
var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>socket_create_listen</function></member>
|
|
<member><function>socket_set_option</function></member>
|
|
</simplelist>
|
|
</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
|
|
-->
|