mon ordi me répond quand a lui Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée j'ai déjà changer de port et d'host mais je n'est pas l'habitude de programmer sous windows j ne connais même pas les commande de l'invit de commande quelqu'un sais de quoi il retourne ?
Comment utilise-t-on la balise code ? merci pour ses erreur c'est vrai que vu l'heur mes yeux sont fatiguer j'y suis depuis 17h ... Voici ce que me dit exactement idle après modification des petites erreurs :
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\client_simple.py", line 7, in <module>
connexion_serveur.connect((hote,port))
ConnectionRefusedError: [WinError 10061] Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée
C'est le bouton </> dans l'éditeur de code du forum (l'avant dernier de la liste). Pense à sélectionner le bon langage avant de valider.
Sinon l'erreur est toujours la même, donc à priori les petites corrections ont pas aidé. Poste la nouvelle version du code qu'on puisse voir ce qui colle pas.
import socket
import sys
hote = '127.0.0.1'
port = 65002
connexion_serveur=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_serveur.connect((hote,port))
print("connexion avec un serveur sur le port{}".format(port))
message_envoyer = b""
while message_envoyer != b"fin" :
message_envoyer = input ("> ")
#peut planter si je tape des caractre speciaux
message_envoyer = message_envoyer.encode(utf8)
connexion_serveur.send(message_envoyer)
message_recu = connexion_serveur.recv(1024)
print(msg_recu.decode(utf8))
print("fermeture de la co")
connexion_serveur.close()
#CLIENT
import socket
import sys
port = 65002
host = '127.0.0.1'
connexion_principale=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
connexion_principale.bind((host,port))
except socket.error:
print("La liaison du socket à l'adresse choisie a échoué.")
sys.exit()
while 1:
print("serveur simple en attente...sur le port{}".format(port))
connexion_principale.listen(5)
connexion_avec_client,info_connexion=connexion_principale.accept()
print("Un client est connecté depuis l'adresse IP {} et le port {}".format(adresse[0], adresse[1]))
connexion.send(("Vous êtes connecté au serveur " + HOST + ":" + str(PORT) +
".\n").encode('UTF-8'))
msg_recu = b""
while msg_recu != b"fin":
msg_recu = connexion_avec_client.recv(1024)
#L'instruction ci de-dessous peut lever une exeception si le message
#receptionner comporte de accents
print(msg_recu.decode(utf8))
connexion_avec_client.send(b"message recu ")
print("fermeture de la connexion")
connexion_avec_client.close()
connexion_principale.close()
#SERVEUR
Hormis le fait que ton code est bourré d'erreurs comme
serveur:
ligne 15: adresse n'existe pas.
ligne 16: connexionn'existe pas, ni HOST ou PORT.
les lignes 18-26 devraient être indentée, car faisant partie de la boucle while de la ligne 11.
client:
lignes 14 et 17: on doit passer à encode et decode la chaîne de caractères"utf8", et non une variable inexistante d'ailleurs nommée utf8. Idem dans le code serveur en ligne 23.
ligne 17: msg_recun'existe pas.
Et il reste d'autres problèmes de logique.
Mais même en corrigeant tout ça, je n'ai pas le message d'erreur dont tu parles... A moins évidemment que tu ne lances le script du client avant celui du serveur... :/ Alors là, oui, j'ai le même problème!
import socket
import sys
hote = '127.0.0.1'
port = 10063
connexion_serveur=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_serveur.connect((hote,port))
print("connexion avec un serveur sur le port{}".format(port))
message_envoyer = "connecte"
while message_envoyer != "fin" :
message_envoyer = input ("> ")
#peut planter si je tape des caractre speciaux
message_envoyer = message_envoyer.encode('UTF-8')
connexion_serveur.send(message_envoyer)
message_recu = connexion_serveur.recv(1024)
print(msg_recu.decode('UTF-8'))
print("fermeture de la connexion")
connexion_serveur.close()
#CLIENT
Je n'est juste pas saisie "ligne 17: msg_recun'existe pas."
Dans ton code client, en ligne 15, tu crées une variable message_recu. En ligne 16, tu affiches une variable inexistantemsg_recu.
PS: et dans ce nouveau code que j'ai trop la flemme de parcourir consciencieusement, tu as encore mis un port différent pour le code serveur et client. Ca doit être le même. Si évidemment tu changes plus de choses que nécessaire, tu ne vas jamais y arriver. Il faut procéder étape par étape. Toi tu fonces dans tous les murs. Et ça doit faire mal.
Merci pour tout , effectivement je n'est pas le même port . Mon message d'erreur venais du fait que je travail sur idle , et je lancé serveur puis client , le lancement du client ferme le serveur . mon serveur n'a pas changer
j'ai modifier le client et maintenant j'ai ça :
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\client_simple.py.py", line 11, in <module>
message_envoyer = input("> ")
File "<string>", line 1, in <module>
NameError: name 'slut' is not defined //slut etant le message que j'ai écrit du client au serveur (je voulais ecrire salut ^^')
import socket
import sys
hote = '127.0.0.1'
port = 10068
connexion_serveur=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_serveur.connect((hote,port))
print("connexion avec un serveur sur le port {}".format(port))
message_envoyer = " "
while message_envoyer != "fin" :
message_envoyer = input("> ")
#peut planter si je tape des caractre speciaux
message_envoyer = message_envoyer.encode('UTF-8')
connexion_serveur.send(message_envoyer)
message_recu = connexion_serveur.recv(1024)
print(message_recu.decode('UTF-8'))
print("fermeture de la connexion")
connexion_serveur.close()
#CLIENT
Le programme tournait parfaitement sur Mac OS (pour ce qui est de la connexion au serveur) apres la corrections des "petites erreurs", juste une erreur de port. Mais le code a ete completement modifie entre les deux premiers posts.
Le programme tourne , mais quand j'écris un message dans le client , arrive l'erreur suivante
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\client_simple.py.py", line 11, in <module>
message_envoyer = input("> ")
File "<string>", line 1, in <module>
NameError: name 'salut' is not defined
C'est super que tu veuilles apprendre python. Mais tu me donnes l'impression d'avoir sauté dans la grande profondeur avant d'avoir appris à nager.
Le comportement que tu décris est dû au fait que tu as lancé ton programme avec Python 2.X. Vu le chemin C:\Users\User\AppData\Local\Programs\Python\Python35\client_simple.py.py, tu as installé Python 3.5.
Pour lancer le script, tu ouvres un console, tu vas dans le chemin où se trouve ton script et tu tapes py -3 client_simple.py.py.
Cependant:
as-tu remarqué que ton fichier a 2x l'extension .py ?? C'est pas vraiment utile!
tu ne devrais JAMAIS placer tes propres scripts dans le dossier d'installation de Python!!! Fais-toi ton propre dossier ailleurs. MyDocuments paraîtrait une bonne idée...
Je sais que tu vas ignorer ma recommandation, mais j'essaie tout de même. Reprend python a un nouveau moins avancé. Apprend à utiliser la console, à faire quelques programmes simples avec des print, input, boucles, fonctions, etc. Laisse les sockets de côté.
Merci pour tes conseil mais le problème c'est que je n'ai pas le temps de reprendre a zero ... pour la petite histoire je suis en L3 SI et on passe de faire un puissance 4 ( ou j'ai réussis sans problème ) à reseau création de serveur/client
// Merci beaucoup je suis passer sur idle3.5 du coup et sa marche !!! merci beaucoup
C'est juste pour vous remercier , je vous met ci-joins le code que j'ai réussis a faire :
import socket
import sys
hote = '127.0.0.1'
port = 10005
connexion_serveur=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_serveur.connect((hote,port))
print("connexion avec un serveur sur le port {}\n".format(port))
message_recu = " "
msg_recu=connexion_serveur.recv(1024).decode('UTF-8')
msg2recu=connexion_serveur.recv(1024).decode('UTF-8')
print(msg_recu)
print(msg2recu)
while message_recu != 'vous avez gagnez':
message_envoyer = input("> ")
#peut planter si je tape des caractre speciaux
message_envoyer = message_envoyer.encode('UTF-8')
connexion_serveur.send(message_envoyer)
message_recu = connexion_serveur.recv(1024).decode('utf-8')
print(message_recu)
print("fermeture de la connexion\n")
connexion_serveur.close()
#CLIENT + ou -
Le but étant de crée un serveur/client qui joue au jeux plus ou moins
Aucune connexion n’a pu être établie car l’ordina
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Je n'est juste pas saisie "
Le but étant de crée un serveur/client qui joue au jeux plus ou moins