Socket client/serveur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 496 fois - Téléchargée 33 fois

Contenu du snippet

Voici dépourvu de tout code supperflu un exemple de socket sous Python.
Cette source n'est pas utilisable toute seule, à vous de rajouter ce dont vous avez besoin autour.

Source / Exemple :


#Client

from socket import *

# Création de la socket
PySocket = socket (AF_INET,SOCK_DGRAM)

# Connection au serveur avec comme argument le tuplet (HOST,PORT)
PySocket.connect (('localhost',12345))

# Réception d'une donnée, avec un buffer de 1024 octets
PySocket.recv (1024)

# Emission d'une donnée vers le serveur
PySocket.send ("Salut serveur")

# Fermeture de la socket
PySocket.close () 

#Serveur

from socket import *

# Création de la socket
PySocket = socket (AF_INET,SOCK_DGRAM)

# Bind de la socket avec le tuplet (HOST,PORT)
# pour un serveur LAN (local) laissez 'localhost'
# pour un serveur internet mettez votre IP à la place
PySocket.bind (('localhost',12345))

# Réception d'une donnée avec 1024 octets de buffer
# Donnee contient la donnée reçue, Client contient l'IP du client qui
# a envoyé la donnée
Donnee, Client = PySocket.recvfrom (1024)
 
# Envoi d'une donnée vers un Client précisé par son IP
# La donnée à mettre dans 'Client' est identique à celle reçue
# via rcvfrom () si le client a déjà envoyé une donnée'
PySocket.sendto (String,Client)

# Fermeture de la socket
PySocket.close ()

Conclusion :


Simple comme Python ;)
A vous de tailler une classe pour gérer vos connections à votre mesure

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
vendredi 6 janvier 2006
Statut
Membre
Dernière intervention
6 janvier 2006

bien
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
1
juste pour dire qu'il existe une methode dans le module socket qui s'appele gethostname() et qui renvoi le nom de l'hote et qui permet ainsi de binder sur l'adresse publique de l'ordinateur.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.