rx3:index
This is an old revision of the document!
Table of Contents
Réseau L2 Info : Socket en Python 3
Client UDP
#!/usr/bin/python3 import sys import socket HOST = 'time-c.nist.gov' PORT = 13 # daytime s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto(b'', (HOST,PORT)) d = s.recvfrom(1024) reply = d[0] addr = d[1] print 'Server reply : ' + reply s.close() print ('Received', data)
Client TCP
#!/usr/bin/python3 import sys import socket HOST = 'www.labri.fr' PORT = 80 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) s.sendall(b'GET /\r\n\r\n') data = s.recv(1024) s.close() print ('Received', data)
Serveur UDP
Voici un echo server en version UDP…
#!/usr/bin/python3 import socket import sys HOST = '' # Symbolic name meaning all available interfaces PORT = 7777 # Arbitrary non-privileged port s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # ipv4 only # s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) # ipv4/ipv6 s.bind((HOST, PORT)) while True: reply, addr = s.recvfrom(1500) print (reply) s.sendto(reply, addr)
On utilise netstat pour vérifier que son serveur écoute :
netstat -ulpn Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:7777 0.0.0.0:* 3314/python3
Voici un client netcat ipv4/udp:
nc -4 -u localhost 7777 coucou coucou
Serveur TCP
Voici un echo server en version TCP…
#!/usr/bin/python3 import socket HOST = '' # Symbolic name meaning all available interfaces PORT = 7777 # Arbitrary non-privileged port s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((HOST, PORT)) s.listen(1) while True: sclient, addr = s.accept() print('Connected by', addr) while True: data = sclient.recv(1500) if data == b'' or data == b'\n' : break print(data) sclient.sendall(data) print('Disconnected by', addr) sclient.close()
Documentation
rx3/index.1490353722.txt.gz · Last modified: 2024/03/18 15:05 (external edit)