Files
doc-fr/reference/sockets/functions/socket-get-option.xml
T
Damien Seguy acae856337 synch with en
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@277600 c90b9560-bf6c-de11-be94-00142212c4b1
2009-03-22 22:21:28 +00:00

339 lines
11 KiB
XML
Executable File

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.9 $ -->
<!-- EN-Revision: 1.16 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-get-option">
<refnamediv>
<refname>socket_get_option</refname>
<refpurpose>Lit les options de la socket</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>socket_get_option</methodname>
<methodparam><type>resource</type><parameter>socket</parameter></methodparam>
<methodparam><type>int</type><parameter>level</parameter></methodparam>
<methodparam><type>int</type><parameter>optname</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>optname</parameter> pour la socket
spécifiée 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 ressource de socket valide, créée par la fonction
<function>socket_create</function> ou la fonction
<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>optname</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éboguage 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>
Reporte si les adresses locales peuvent être réutilisées ou pas.
</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 la socket connectée échoue en
réponse à ces messages, la connexion est interrompue et le processus
écrira à cette 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 la 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 la socket est fermée,
<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 la socket est non-bloquante,
<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 la 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 la 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 la 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 la 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>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne la valeur de l'option fournie, ou &false; si une erreur survient.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>socket_set_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="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>4.3.0</entry>
<entry>
Le nom de cette fonction a changé. Avant, elle s'appelait
<literal>socket_getopt()</literal>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</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:"../../../../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
-->