
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://livre.g6.asso.fr/index.php?action=history&amp;feed=atom&amp;title=Programmation_d%27applications</id>
		<title>Programmation d'applications - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://livre.g6.asso.fr/index.php?action=history&amp;feed=atom&amp;title=Programmation_d%27applications"/>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;action=history"/>
		<updated>2026-05-07T09:11:02Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;diff=2950&amp;oldid=prev</id>
		<title>Bruno Deniaud at 10:27, 27 February 2006</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;diff=2950&amp;oldid=prev"/>
				<updated>2006-02-27T10:27:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:27, 27 February 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{suivi| &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Accès des entreprises et des particuliers à l&lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Internet IPv6 &lt;/del&gt;| &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Accès des entreprises et des particuliers à l&lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Internet IPv6 &lt;/del&gt;| &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Programmation d&lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;applications &lt;/del&gt;| &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Programmation d&lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;applications &lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{suivi| &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Mécanismes d&lt;/ins&gt;'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;interopérabilité &lt;/ins&gt;| &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Mécanismes d&lt;/ins&gt;'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;interopérabilité &lt;/ins&gt;| &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;L&lt;/ins&gt;'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;interface de programmation &amp;quot;socket&amp;quot; IPv6 &lt;/ins&gt;| &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;L&lt;/ins&gt;'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;interface de programmation &amp;quot;socket&amp;quot; IPv6 &lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;L'évolution de IPv4 vers IPv6 a été conçue pour minimiser les changements visibles. Un grand nombre de concepts n'ont pas changé : les noms, les &amp;quot;ports&amp;quot;, l'envoi et la réception de données,... Un certain nombre de points ont malgré tout dû être modifiés. Le principal est lié à la taille de l'adresse : en IPv4, une adresse a une longueur de 32 bits (et de nombreux programmes confondent les types adresse et entier) alors qu'en IPv6 une adresse a une longueur de 128 bits ; les types liés aux adresses doivent donc être modifiés. En fait l'effet est plus profond : les nouvelles structures sont plus grandes, et certaines réservations de mémoire avec conversion de type implicite (en particulier : un entier pour une adresse, une &amp;lt;tt&amp;gt;struct sockaddr&amp;lt;/tt&amp;gt; pour une &amp;lt;tt&amp;gt;struct sockaddr_in&amp;lt;/tt&amp;gt;, un tampon de 16 octets pour afficher une adresse sous forme numérique) doivent être corrigés sous peine de débordement de mémoire.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;L'évolution de IPv4 vers IPv6 a été conçue pour minimiser les changements visibles. Un grand nombre de concepts n'ont pas changé : les noms, les &amp;quot;ports&amp;quot;, l'envoi et la réception de données,... Un certain nombre de points ont malgré tout dû être modifiés. Le principal est lié à la taille de l'adresse : en IPv4, une adresse a une longueur de 32 bits (et de nombreux programmes confondent les types adresse et entier) alors qu'en IPv6 une adresse a une longueur de 128 bits ; les types liés aux adresses doivent donc être modifiés. En fait l'effet est plus profond : les nouvelles structures sont plus grandes, et certaines réservations de mémoire avec conversion de type implicite (en particulier : un entier pour une adresse, une &amp;lt;tt&amp;gt;struct sockaddr&amp;lt;/tt&amp;gt; pour une &amp;lt;tt&amp;gt;struct sockaddr_in&amp;lt;/tt&amp;gt;, un tampon de 16 octets pour afficher une adresse sous forme numérique) doivent être corrigés sous peine de débordement de mémoire.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bruno Deniaud</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;diff=2949&amp;oldid=prev</id>
		<title>Bruno Deniaud at 10:27, 27 February 2006</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;diff=2949&amp;oldid=prev"/>
				<updated>2006-02-27T10:27:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:27, 27 February 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{suivi| Accès des entreprises et des particuliers à l'Internet IPv6 | Accès des entreprises et des particuliers à l'Internet IPv6 | Programmation d'applications | Programmation d'applications }}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;L'évolution de IPv4 vers IPv6 a été conçue pour minimiser les changements visibles. Un grand nombre de concepts n'ont pas changé : les noms, les &amp;quot;ports&amp;quot;, l'envoi et la réception de données,... Un certain nombre de points ont malgré tout dû être modifiés. Le principal est lié à la taille de l'adresse : en IPv4, une adresse a une longueur de 32 bits (et de nombreux programmes confondent les types adresse et entier) alors qu'en IPv6 une adresse a une longueur de 128 bits ; les types liés aux adresses doivent donc être modifiés. En fait l'effet est plus profond : les nouvelles structures sont plus grandes, et certaines réservations de mémoire avec conversion de type implicite (en particulier : un entier pour une adresse, une &amp;lt;tt&amp;gt;struct sockaddr&amp;lt;/tt&amp;gt; pour une &amp;lt;tt&amp;gt;struct sockaddr_in&amp;lt;/tt&amp;gt;, un tampon de 16 octets pour afficher une adresse sous forme numérique) doivent être corrigés sous peine de débordement de mémoire.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;L'évolution de IPv4 vers IPv6 a été conçue pour minimiser les changements visibles. Un grand nombre de concepts n'ont pas changé : les noms, les &amp;quot;ports&amp;quot;, l'envoi et la réception de données,... Un certain nombre de points ont malgré tout dû être modifiés. Le principal est lié à la taille de l'adresse : en IPv4, une adresse a une longueur de 32 bits (et de nombreux programmes confondent les types adresse et entier) alors qu'en IPv6 une adresse a une longueur de 128 bits ; les types liés aux adresses doivent donc être modifiés. En fait l'effet est plus profond : les nouvelles structures sont plus grandes, et certaines réservations de mémoire avec conversion de type implicite (en particulier : un entier pour une adresse, une &amp;lt;tt&amp;gt;struct sockaddr&amp;lt;/tt&amp;gt; pour une &amp;lt;tt&amp;gt;struct sockaddr_in&amp;lt;/tt&amp;gt;, un tampon de 16 octets pour afficher une adresse sous forme numérique) doivent être corrigés sous peine de débordement de mémoire.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L12&quot; &gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* un exemple qui génère un trafic multicast, avec abonnement et désabonnement ;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* un exemple qui génère un trafic multicast, avec abonnement et désabonnement ;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* un programme illustant l'utilisation de l'API socket avancée.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* un programme illustant l'utilisation de l'API socket avancée.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{suivi| Mécanismes d'interopérabilité | Mécanismes d'interopérabilité | L'interface de programmation &amp;quot;socket&amp;quot; IPv6 | L'interface de programmation &amp;quot;socket&amp;quot; IPv6 }}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bruno Deniaud</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;diff=2251&amp;oldid=prev</id>
		<title>Laurent Toutain at 05:38, 14 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=Programmation_d%27applications&amp;diff=2251&amp;oldid=prev"/>
				<updated>2005-12-14T05:38:12Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;L'évolution de IPv4 vers IPv6 a été conçue pour minimiser les changements visibles. Un grand nombre de concepts n'ont pas changé : les noms, les &amp;quot;ports&amp;quot;, l'envoi et la réception de données,... Un certain nombre de points ont malgré tout dû être modifiés. Le principal est lié à la taille de l'adresse : en IPv4, une adresse a une longueur de 32 bits (et de nombreux programmes confondent les types adresse et entier) alors qu'en IPv6 une adresse a une longueur de 128 bits ; les types liés aux adresses doivent donc être modifiés. En fait l'effet est plus profond : les nouvelles structures sont plus grandes, et certaines réservations de mémoire avec conversion de type implicite (en particulier : un entier pour une adresse, une &amp;lt;tt&amp;gt;struct sockaddr&amp;lt;/tt&amp;gt; pour une &amp;lt;tt&amp;gt;struct sockaddr_in&amp;lt;/tt&amp;gt;, un tampon de 16 octets pour afficher une adresse sous forme numérique) doivent être corrigés sous peine de débordement de mémoire.&lt;br /&gt;
&lt;br /&gt;
L'interface de programmation réseau (&amp;quot;API&amp;quot;) la plus connue est l'interface &amp;quot;socket&amp;quot; (dite aussi interface &amp;quot;BSD&amp;quot;). Le but de ce chapitre est de présenter pour cette interface de programmation les modifications introduites pour supporter IPv6, et notamment de donner une brève description des nouvelles primitives d'appel au DNS et de conversion d'adresses.&lt;br /&gt;
&lt;br /&gt;
Ces modifications ont été définies pour être aussi transparentes que possible, et, s'il est en pratique toujours nécessaire de modifier un programme pour le porter de IPv4 à IPv6, un programme conçu avec des règles de typage strict est portable sans grandes modifications.&lt;br /&gt;
&lt;br /&gt;
Ce chapitre illustrera l'interface de programmation &amp;quot;socket&amp;quot; pour IPv6 en présentant plusieurs exemples de programmes. Plus précisément, il détaillera successivement :&lt;br /&gt;
&lt;br /&gt;
* un programme combinant les différentes fonctions de conversion d'adresse ;&lt;br /&gt;
* un client/serveur TCP calculant le nombre d'utilisateurs connectés sur une machine cible. En particulier, on aura soin de comparer les codes IPv4 et IPv6 de ce client/serveur, ce qui amènera à constater qu'à ce niveau de programmation, la migration vers IPv6 n'offre aucune difficulté ;&lt;br /&gt;
* un &amp;quot;mini ping&amp;quot; qui permettra de se familiariser avec le protocole ICMPv6 qui présente de notables différences avec son prédécesseur le protocole ICMPv4 ;&lt;br /&gt;
* un exemple qui génère un trafic multicast, avec abonnement et désabonnement ;&lt;br /&gt;
* un programme illustant l'utilisation de l'API socket avancée.&lt;/div&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	</feed>