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

# -*- coding: utf-8 -*-
import socket
IP_SERVEUR = '127.0.0.1'
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()