<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Python_%3A_R%C3%A9seau</id>
	<title>Python : Réseau - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Python_%3A_R%C3%A9seau"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;action=history"/>
	<updated>2026-06-12T01:35:45Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;diff=2245&amp;oldid=prev</id>
		<title>Justine le 22 juin 2022 à 12:07</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;diff=2245&amp;oldid=prev"/>
		<updated>2022-06-22T12:07:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 22 juin 2022 à 12:07&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;[[Category:prog]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;[[Category:python]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La plupart des informations sont tirées de&amp;amp;nbsp;: [https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La plupart des informations sont tirées de&amp;amp;nbsp;: [https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-mediawiki:diff:1.41:old-305:rev-2245:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;diff=305&amp;oldid=prev</id>
		<title>Justine le 23 novembre 2018 à 19:36</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;diff=305&amp;oldid=prev"/>
		<updated>2018-11-23T19:36:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;amp;diff=305&amp;amp;oldid=304&quot;&gt;Voir les modifications&lt;/a&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;diff=304&amp;oldid=prev</id>
		<title>Justine : Page créée avec «  La plupart des informations sont tirées de : [https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau https://openclassrooms.com/fr... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_R%C3%A9seau&amp;diff=304&amp;oldid=prev"/>
		<updated>2018-11-23T18:49:30Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec «  La plupart des informations sont tirées de : [https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau https://openclassrooms.com/fr... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
La plupart des informations sont tirées de : [https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234698-le-reseau]&lt;br /&gt;
&lt;br /&gt;
= &amp;amp;nbsp; =&lt;br /&gt;
&lt;br /&gt;
= Un client/serveur très simples pour comprendre le fonctionnement =&lt;br /&gt;
&lt;br /&gt;
Serveur:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee; border:1px solid #cccccc; padding:5px 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;# -*-coding:utf-8 -*&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Création d&amp;#039;un serveur&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#cc7832&amp;quot;&amp;gt;import &amp;lt;/span&amp;gt;socket&amp;amp;nbsp; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Le module socket contient les objets sockets&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
connexion_principale = socket.socket(socket.AF_INET&amp;lt;span style=&amp;quot;color:#ed864a; font-weight:bold&amp;quot;&amp;gt;, &amp;lt;/span&amp;gt;socket.SOCK_STREAM) &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#L&amp;#039;objet socket, AF_INET correspond à la famille d&amp;#039;adresses (ici, IP), et SOCK_STREAM correspond à TCP&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#On va connecter le socket, avec la méthode bind. Elle prend en paramètre un tuple (nom_hote, port).&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Binder le socket, cela veut dire que l&amp;#039;on va déclarer que l&amp;#039;on utilise ce port (On va prendre un port dynamique).&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_principale.bind((&amp;lt;span style=&amp;quot;color:#54b33e&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#ed864a; font-weight:bold&amp;quot;&amp;gt;, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#33ccff; font-weight:bold&amp;quot;&amp;gt;12800&amp;lt;/span&amp;gt;))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#On va faire écouter notre socket : il n&amp;#039;est pas encore en LISTEN. On va donc utiliser la méthode listen.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#On lui passe en paramètre le nombre de connexions qu&amp;#039;il peut recevoir et refuser (en général 5).&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_principale.listen(&amp;lt;span style=&amp;quot;color:#33ccff; font-weight:bold&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Accepter une connexion venant du client&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#C&amp;#039;est la dernière étape : on va utiliser la méthode accept, qui bloque le processus tant qu&amp;#039;aucun client n&amp;#039;est venu se connecter.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#La méthode accept renvoie deux choses : le socket connecté qui vient de se créer, ainsi que le port de connexion du client.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_avec_client&amp;lt;span style=&amp;quot;color:#ed864a; font-weight:bold&amp;quot;&amp;gt;, &amp;lt;/span&amp;gt;infos_connexion = connexion_principale.accept()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Cette méthode bloque le programme, on va passer au client.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#########&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Une fois que le client s&amp;#039;est connecté, on peut récupérer nos informations de connexion&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#8888c6&amp;quot;&amp;gt;print&amp;lt;/span&amp;gt;(infos_connexion)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;##Faire communiquer nos sockets&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Pour faire communiquer nos sockets, on va utiliser la méthode send pour envoyer et recv pour recevoir.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#send renvoie le nombre de caractères envoyés.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_avec_client.send(&amp;lt;span style=&amp;quot;color:#a5c261&amp;quot;&amp;gt;b&amp;quot;J&amp;#039;ai accepte la connexion&amp;quot;&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;##On utilise recv côté client.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;###Fermer la connexion&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_avec_client.close()&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Le client :&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee; border:1px solid #cccccc; padding:5px 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#cc7832&amp;quot;&amp;gt;import &amp;lt;/span&amp;gt;socket&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;# -*-coding:utf-8 -*&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;###On va d&amp;#039;abord créer le client de la même façon que pour le serveur&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_avec_serveur = socket.socket(socket.AF_INET&amp;lt;span style=&amp;quot;color:#ed864a; font-weight:bold&amp;quot;&amp;gt;, &amp;lt;/span&amp;gt;socket.SOCK_STREAM)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;##On va connecter le client avec la méthode connect. Elle prend comme bind un tuple en paramètre, contenant le nom d&amp;#039;hôte et le&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#numéro de port du serveur.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Vu que les deux applications sont sur la même machine le nom d&amp;#039;hôte est localhost&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_avec_serveur.connect((&amp;lt;span style=&amp;quot;color:#54b33e&amp;quot;&amp;gt;&amp;#039;localhost&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#ed864a; font-weight:bold&amp;quot;&amp;gt;, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#33ccff; font-weight:bold&amp;quot;&amp;gt;12800&amp;lt;/span&amp;gt;))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Notre serveur et notre client sont connectés.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#On peut retourner sur notre serveur&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;###On va recevoir ce qu&amp;#039;envoie le serveur. recv prend en paramètre le nombre de caractères à lire, en général 1024.&amp;amp;nbsp; On pourra&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#récupérer un message en plusieurs fois.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; msg_recu = connexion_avec_serveur.recv(&amp;lt;span style=&amp;quot;color:#33ccff; font-weight:bold&amp;quot;&amp;gt;1024&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#8888c6&amp;quot;&amp;gt;print&amp;lt;/span&amp;gt;(msg_recu)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Le message recu est affiché.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#7ec3e6&amp;quot;&amp;gt;#Fermer la connexion&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; connexion_avec_serveur.close()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>