Rechercher : dans
Par :

Connexion serveur/client python

Dernière réponse le 4 mar 2008 à 14:22:53 tsic, le 3 mar 2008 à 15:39:31 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « connexion serveur/client python » dans :
Se connecter à un serveur FTP en mode Ms-Dos VoirLa commande ftp permet de se connecter à un serveur FTP en ligne de commande. Certaines options de cette commande permettent d'automatiser la connexion en fournissant une liste de commandes contenues dans un fichier texte : ftp -i ...
Adresse introuvable / Serveur introuvable VoirLorsque vous essayez de vous connecter à Internet, le navigateur indique adresse introuvable ou serveur introuvable. Voici comment résoudre le problème : Vérifier les branchements Connexion au réseau Problème de pare-feu Problème de cache...
Serveur X sous Windows VoirIl est possible d'installer un serveur X sous Windows afin d'utiliser les applications X-Windows (Gnome, KDE, etc.) sous Windows (par exemple à travers une connexion ssh). La méthode suivante n'utilise pas Cygwin. Dans l'exemple ci-dessous,...
Environnement Client/Serveur VoirPrésentation de l'architecture d'un système client/serveur De nombreuses applications fonctionnent selon un environnement client/serveur, cela signifie que des machines clientes (des machines faisant partie du réseau) contactent un serveur, une...
Java - L'API JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
Partager une connexion Internet sous Windows XP VoirIntérêt Si vous possédez un réseau local (deux ordinateurs ou plus reliés en réseau) dont un connecté à Internet (par l'intermédiaire d'un modem, par le câble, ...) il peut être intéressant de rendre Internet accessible aux autres ordinateurs du...

1

sebsauvage, le 3 mar 2008 à 15:44:29

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)

Répondre à sebsauvage

2

tsic, le 4 mar 2008 à 08:47:29

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.

Répondre à tsic

3

sebsauvage, le 4 mar 2008 à 09:35:36

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 ?

Répondre à sebsauvage

4

tsic, le 4 mar 2008 à 14:15:14

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

Répondre à tsic

5

 sebsauvage, le 4 mar 2008 à 14:22:53

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.)

Répondre à sebsauvage
Collection CommentÇaMarche.net