projman/hlp/fr/tcl/socket.htm

63 lines
7.0 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>socket&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commandes Internes Tcl</b></H3></div>
<HR ALIGN="center">
<div><b>NOM</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">socket - Ouvre une connection r<>seau TCP
</div><br>
<div><b>SYNTAXE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><br>
<b>socket </b>?<i>options</i>? <i>host port</i> <br>
<b>socket</b> <b>-server </b><i>command</i> ?<i>options</i>? <i>port</i>&nbsp; <br>
</div><br>
<div><b>DESCRIPTION</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Cette commande ouvre une socket r<>seau et retourne un identificateur de canal qui peut <20>tre employ<6F> dans les appels futurs des commandes comme <A HREF="151.htm"><b>read</b></A>, <A HREF="148.htm"><b>puts</b></A> et <A HREF="114.htm"><b>flush</b></A>. A pr<70>sent seul le protocole r<>seau TCP est support<72>; les versions futures pourront inclure un support pour des protocoles suppl<70>mentaires. La commande <b>socket</b> peut <20>tre employ<6F>e pour ouvrir soit le cot<6F> client ou serveur d'une connection, d<>pendant de si le switch <b>-server</b> est sp<73>cifi<66> <br>
</div><br>
<div><b>SOCKETS CLIENTES </b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Si l'option <b>-server</b> n'est pas sp<73>cifi<66>e, alors la partie client d'un connection est ouverte et la commande retourne un identificateur de canal qui peut <20>tre utilis<69> pour la lecture et l'<27>criture. <i>Port</i> et <i>host</i> sp<73>cifient un port pour la connection;&nbsp; il doit y avoir un serveur qui accepte des connections sur ce port <i>Port</i> est un num<75>ro de port entier et <i>host</i> est soit un nom qualifi<66> tel que <b>www.sunlabs.com</b> ou une adresse num<75>rique IP telle que <b>127.0.0.1</b>. Utilisez <i>localhost</i> pour vous r<>f<EFBFBD>rer <20> la machine sur laquelle la commande a <20>t<EFBFBD> appel<65>e. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Les options suivantes peuvent <20>tre aussi pr<70>sentes avant <i>host</i> pour sp<73>cifier des information suppl<70>mentaires concernant la connection:
<DL>
<DT><b>-myaddr</b><i> addr</i>
</DT><DD><i>Addr</i> donne le nom qualifi<66> ou l'adresse IP num<75>rique de l'interface r<>seau cot<6F> client <20> utiliser pour la connection. Cette option peut <20>tre utile si la machine cliente a plusieurs interfaces r<>seau Si l'option est omise alors l'interface cot<6F> client sera choisie par le logiciel syst<73>me.
</DD>
<DT><br><b>-myport</b><i> port</i></DT><DD><i>Port</i> sp<73>cifie un num<75>ro de port entier <20> utiliser pour le cot<6F> client de la connection. Si cette option est omise, un num<75>ro de port client al<61>atoire sera choisi par le logiciel syst<73>me.
</DD>
<DT><br><b>-async</b>
</DT><DD>L'option <b>-async</b> induit une connection asynchrone pour&nbsp; la socket cliente. Ceci signifie que la socket sera cr<63>e imm<6D>diatement mais ne peut pas encore <20>tre connect<63>e au serveur, quand l'appel de <b>socket</b> retourne. Quand une <A HREF="118.htm"><b>gets</b></A> ou <A HREF="114.htm"><b>flush</b></A> est fait sur le socket avant que la tentative de connection ait r<>ussi ou <20>chou<6F>, si la socket est en mode bloquant, l'op<6F>ration attendra jusqu'a ce que la connection soit compl<70>t<EFBFBD>e ou <20>choue. Si la socket est en mode non bloquant et qu'une <A HREF="118.htm"><b>gets</b></A> ou <A HREF="114.htm"><b>flush</b></A> est fait sur la socket avant que la tentative de connection ait r<>ussi ou <20>chou<6F>, l'op<6F>ration retourne imm<6D>diatement et <A HREF="108.htm"><b>fblocked</b></A> sur le socket retourne 1.
</DD>
</DL>
</div><br>
<div><b>SOCKETS SERVEUR </b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Si l'option <b>-server</b> est sp<73>cifi<66>e alors la nouvelle socket sera un serveur pour le port indiqu<71> par <i>port</i>. Tcl acceptera automatiquement les connections sur ce port. Pour chaque connection Tcl cr<63>era un nouveau canal qui pourra <20>tre employ<6F> pour communiquer avec le client Tcl appelle alors <i>command</i> avec trois arguments suppl<70>mentaire: le nom du nouveau canal, l'adresse, en notation r<>seau, de la machine cliente, et le num<75>ro de port du client. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">L'option suppl<70>mentaire suivante peut aussi <20>tre sp<73>cifi<66>e avant <i>host</i>:
<DL>
<DT><b>-myaddr</b><i> addr</i>
</DT><DD><i>Addr</i> donne le nom qualifi<66> ou l'adresse IP num<75>rique de l'interface r<>seau du cot<6F> serveur <20> utiliser pour la connection. Cette option peut <20>tre utile si la machine serveur a plusieurs interfaces r<>seau. Si l'option est omise alors la socket serveur est attach<63>e <20> l'adresse sp<73>ciale INADDR_ANY ainsi elle peut accepter les connections sur une interface quelconque.
</DD>
</DL>
</div>
<div ALIGN="LEFT" style="margin-left: 51px;">Les canaux serveurs ne peuvent pas <20>tre utilis<69>s pour les entr<74>es ou sorties; leur seul usage est d'accepter de nouvelles connections client. Les canaux cr<63><72>s pour chaque connection client entrante sont ouvert pour l'entr<74>e et la sortie. Fermer le canal serveur ferme le serveur ainsi aucune nouvelle connectios ne sera accept<70>e n<>anmoins, les connections existantes ne seront pas affect<63>es. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Les sockets serveurs d<>pendent du m<>canisme d'<27>v<EFBFBD>nement Tcl pour r<>agir aux nouvelles connections ouvertes. Si l'application n'entre pas dans la boucle d'<27>v<EFBFBD>nement, par exemple en appelant la commande <A HREF="180.htm"><b>vwait</b></A> ou l'appel de fonction C <A HREF="29.htm"><b>Tcl_DoOneEvent</b></A>, alors aucunes connections ne seront accept<70>es <br>
</div><br>
<div><b>OPTIONS DE CONFIGURATION </b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <A HREF="109.htm"><b>fconfigure</b></A> peut <20>tre utilis<69>e pour consulter plusieurs options de configuration en lecture seule pour les canaux socket:
<DL>
<DT><b>-error</b></DT><DD>Cette option lit le statut d'erreur courant de la socket donn<6E>e. Ceci est utile quand vous avez besoin de determiner si une op<6F>ration de connection asynchrone a r<>ussi. S'il y a eu une erreur, le message d'erreur est renvoy<6F>. Si il n'y avait pas d'erreur, une cha<68>ne vide est renvoy<6F>e.
</DD>
<DT><br><b>-sockname</b>
</DT><DD>Cette option retourne une liste de trois <20>l<EFBFBD>ments, l'adresse, le nom de machine et le num<75>ro de port pour la socket. Si le nom de machine ne peut pas calcul<75>, le second <20>l<EFBFBD>ment est identique <20> l'adresse, le premier <20>l<EFBFBD>ment de la liste.
</DD>
<DT><br><b>-peername</b>
</DT><DD>Cette option n'est pas support<72>e par les sockets serveur. Pour les sockets clients accept<70>s, cette option retourne une liste de trois <20>l<EFBFBD>ments; ce sont l'adresse, le nom de machine et le port auquels la socket peer est connect<63>e ou li<6C>e. Si le nom de machine ne peut <20>tre calcul<75>, le second <20>l<EFBFBD>ment de la liste est identique <20> l'adresse, son premier <20>l<EFBFBD>ment.</DD>
</DL>
</div>
<br>
<div><b>VOIR EGALEMENT</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><A HREF="114.htm">flush</A>(n), <A HREF="142.htm">open</A>(n), <A HREF="151.htm">read</A>(n)</div><br>
<div>Derni<EFBFBD>re r<>vision: 8.0</div>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="161.htm"><b>Pr<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="163.htm"><b>Suivant</b></A></div>
</BODY></HTML>