You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
# -*- coding: utf-8 -*-
|
|
|
|
import socket
|
|
|
|
IP_SERVEUR = '172.16.155.96'
|
|
PORT = 42000
|
|
|
|
|
|
class Connexion():
|
|
def __init__(self, sens):
|
|
"""Si `sens` == "serveur" ouvre une connexion côté serveur,
|
|
sinon ouvre une connexion côté client."""
|
|
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
if sens == "serveur":
|
|
mySocket.bind((IP_SERVEUR, PORT))
|
|
print(f"Serveur({IP_SERVEUR}:{PORT}) prêt. Attend un client...")
|
|
mySocket.listen()
|
|
self.connexion, adresse = mySocket.accept()
|
|
print(f"Connecté avec le client({adresse}).")
|
|
else:
|
|
print(f"Connexion au serveur({IP_SERVEUR}:{PORT})...")
|
|
mySocket.connect((IP_SERVEUR, PORT))
|
|
print("Connexion établie avec le serveur")
|
|
self.connexion = mySocket
|
|
|
|
def send(self, message):
|
|
"""Envoie le message, et l'affiche."""
|
|
print(f"Envoi de <{message}>.")
|
|
self.connexion.send(message)
|
|
|
|
def recv(self):
|
|
"""Reçoit un message d'au plus 1024 octets, l'affiche et le renvoie.
|
|
Attention, la réception est bloquante : tant qu'il n'y a pas de message
|
|
à recevoir, le programme attend."""
|
|
message = self.connexion.recv(1024)
|
|
print(f"Reçu <{message}>.")
|
|
return message
|
|
|
|
def close(self):
|
|
"""Ferme la connexion."""
|
|
print("Fermeture de la connexion.")
|
|
self.connexion.close()
|
|
|