Programmation réseau Python3: TCP/UDP, Sockets & Modèle OSI

Telechargé par Haja Razafindranja
TP R107 – Python3
Programmation réseau avec Python3
1 Introduction
Notions de réseau:

TCPcouche 4modèle OSIcouche transport
 IPcouche 3Ethernetcouche
2 !HTTPcouche 7 Application
les 7 couches du modèle OSI:
Le protocole UDP
"#$!%&fonctionne en mode non-connecté
'(  '! )$
 '  )%*'+)
)' )%* $)
")%+)),
     )%  )'
' 
Protocole HTTP
Protocole TCP
Protocole IP
Protocole ETHERNET
$ (
 -" '
(,%" 
.)( 
"#'!!+
+&'
 #' '!+!%
   )
 !*/00
#(,)'+).
 '
Le protocole TCP:
"protocoleTCP!mode connecté.%
 '.(
1
+
#!%'.(clientserveur
serveurclientliaison bidirectionnelle, dite full duplex
2! !!
")%!3/triple handshake4
" . 56
" 5678
" ) 8
59) ' +
:
2 Comment faire une connexion avec Python3
Les sockets:
Une socket) structure de donnée 
 
" )programme communiquantmanipule des sockets
établir ou fermer les connexions  envoyer et recevoir des
données sur le réseau
Programmation réseau sur les sockets:
En Python, les fonctions associées  sockets ! module socket0
importer ce module
0(/
#!/usr/bin/env python3
import socket
3 Programmation client-serveur:
Le serveur UPD en Python3:
 protocole UDP!mode non connecté
";+UDP(3/SOCK_DGRAM4
serveur = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Voici un exemple de programme serveur 3/simpleUDPServeur.py/4  socket
UDP)/3000
#!/usr/bin/env python3
import socket
serveur = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# permet de libérer le PORT après un CTRL + C
serveur.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serveur.bind(('localhost', 3000)) # Utilise le port réseau 3000
print("Serveur UDP en écoute sur 3000\n")
while True :
# utilisation de recvfrom pour récupérer le tuple address
request, address = serveur.recvfrom(1024)
print("Message client : ", request.decode("utf-8"))
print("IP du client connecté : ", address)
serveur.sendto(b"i am the server", address)
serveur.close()
 UDP1<3000
!!)& )(
Tester  ='    !      0>  "            /
~$ python3 .//simpleUDPServeur.py

"!!/3/Serveur UDP en écoute sur 3000/4')%
!/while True
3/netcat -u localhost 30004)
=!3/=/4!!?,)&
3/i am the server/4
client UPD en Python3
('#!3tuple4 )
addrPort  )& 
addrPort = ("127.0.0.1", 3000)
 «socket»  (#(
SOCK_DGRAM
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
=!    !!  )(    '          %  3addrPort4    
!3/sendto(…)/4+ UDP est en mode déconnecté/
client.sendto(b"Hello from client", addrPort)
1'!3/recv(1024)/4 )
3/utf-8/4!3bytes4;!!'
/
msgServer = client.recv(1024).decode('utf-8')
print("Message du serveur : ", msgServer)
!3/;/4 )%/
client.close()
0#3/simpleUDPclient.py/4/
#!/usr/bin/env python3
import socket
addrPort = ("127.0.0.1", 3000)
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.sendto(b"Hello from client", addrPort)
msgServer = client.recv(1024).decode('utf-8')
print("Message du serveur : ", msgServer)
client.close()
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!