Connexion serveur/client python

Fermé
tsic - 3 mars 2008 à 15:39
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 4 mars 2008 à 14:22
Bonjour,

Voilà, j'ai débuté recemment avec python et je veux faire une connexion client serveur (windows) par l'intermédiaire d'une interface QT Designer v 4. j'ai choisi ERIC v 4 comme IDE.

l'interface QT contient 2 champs Edittext(recep , emmision) l'un est réservé aux messages emis par le client et l'autre pour les messages renvoyés par le serveur; et un bouton connexion(conec).

le probléme, c'est qu'il y a eu une "petite" connexion entre l'interface et le serveur (sous Dos) mais le programme génère plusieurs erreurs (puis il se bloque) et il n'y a pas de synchronisation entre les messages client serveur.
SVP, pouvez vous m'aider.

le code :

Code :
.....
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
QtCore.QObject.connect(self.conec,QtCore.SIGNAL("clicked()"),self.so)

def so(self):
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mySocket.connect(( self.adressec.text() , int(self.numport.text())))
except socket.error:
self.emmision.setText("La connexion a echoue.")
sys.exit()
self.emmision.setText("Connexion etablie avec le serveur.")
msgServer= mySocket.recv(1024)
while 1:
if msgServer.upper() == "FIN" or msgServer=="":
break
self.recep.setText(msgServer)
a=self.emmision.text()
mySocket.send(a)
self.recep.setText(msgServer)
msgServer= mySocket.recv(1024)
print "Connexion interrompue."

mySocket.close()
.......Merci.
A voir également:

3 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
3 mars 2008 à 15:44
mmm... question... pour faire un client/serveur, pourquoi aller aussi bas niveau que le socket ?

Alors qu'on a par exemple http qui marche très bien pour faire du client-serveurs ? (urllib2 par exemple).

(socket pose divers problèmes)
0
Merci,
c'est que je suis débutante en python et on m'a imposé de travailler avec ce langage pour faire une connexion via interface QT designer.
Le probleme est surtout au niveau de la synchronisation.
Pouvez vous me donner une idée à propos de ce que vous avez dit "http".
j'ai beau chercher mais il n'y a pas beaucoup de documentation sur la connexion.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
4 mars 2008 à 09:35
pour faire une connexion

Une connexion à quoi ?
Quel protocole comprend le serveur sur lequel tu te connectes ?

Est-ce que c'est toi aussi qui programme le serveur ?
0
c'est un serveur simple on le teste localement mais il travaille aussi entre deux pcs.
voici son code en python.



from socket import *
import socket, sys
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mySocket.bind(( '127.0.0.1' , 84))
except socket.error:
print "La liaison du socket a l adresse choisie a echoue."
sys.exit
while 1:
print "Serveur pret, en attente de requetes ..."
mySocket.listen(5)
connexion, adresse = mySocket.accept()
print "Client connecte, adresse IP %s, port %s" % (adresse[0], adresse[1])

connexion.send("Vous etes connecte au serveur Locale. Envoyez vos messages.")
msgClient = connexion.recv(1024)
while 1:
print "C>", msgClient
if msgClient.upper()=="FIN" or msgClient =="":
break
msgServeur = raw_input("S> ")
connexion.send(msgServeur)
msgClient = connexion.recv(1024)


connexion.send("Au revoir !")
print "Connexion interrompue."
connexion.close()

ch = raw_input("<R>ecommencer <T>erminer ? ")
if ch.upper() == T :
break


Mon projet consiste à faire une interface avec QT designer qui permet la reception des données (au debut comme MSN messenger) Mais après on va recevoir des fichiers et les stocker.
Si on test sur le dos ça fonctionne mais on integrant le code du client (pour se connaicter) avec le code de l'interface ça ne fonctionne pas.


Merci
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
4 mars 2008 à 14:22
Bon je ne connais pas Qt, je ne pourrait donc pas t'aider là dedans.

L'utilisation des sockets est-il une obligation ?
Ou bien vous êtes autorisés à utiliser d'autres choses ? (HTTP, SOAP, XML-RPC...).

Parceque les sockets posent divers problèmes (pas de détection de fin de flux, etc.)
0