Bonjour à tous alors quand j’essaie de compiler ce code ci
import socket
host = ''
port = ''
set_connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM°
set_connection = ((host, port))
set_connection.listen(5)
print("Le port ecoute sur le port {}".format(port))
connection_client, infos_connection = connection_main.accept()
input("")
(j'ai rien encore mit pour l'instant) ça me met l'erreur: syntaxerror: non-utf-8 cpde starting with '\xb0 quand je le lance avec l'invite de commande windows et quand je le lance avec le compilateur (IDLE) ça me met l'erreur: SyntaxError: multiple statements found while compiling a single statement.
Voilà, merci d'avance à tout le monde pour votre aide .
Je suis sur windows 7 je ne sais pas si ça change quelque chose.
import socket
hote = ''
port = 12800
connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_principale.bind((hote, port))
connexion_principale.listen(5)
print("Le serveur écoute à présent sur le port {}".format(port))
connexion_avec_client, infos_connexion = connexion_principale.accept()
msg_recu = b""
while msg_recu != b"fin":
msg_recu = connexion_avec_client.recv(1024)
# L'instruction ci-dessous peut lever une exception si le message
# Réceptionné comporte des accents
print(msg_recu.decode())
connexion_avec_client.send(b"5 / 5")
print("Fermeture de la connexion")
connexion_avec_client.close()
connexion_principale.close()
même quand je copie colle le code du site du zéro j'ai la même erreur : SyntaxError: multiple statements found while compiling a single statement
Il faut aussi comprendre ce que tu fais. L'erreur que tu cite semble nous indiquer que tu as simplement collé ce pâter dans l'interpréteur (en l’occurrence celui d'IDLE). Le shell Python n'est pas fait pour ça. Il sert à exécuter des instructions les unes après les autres :
>>> import socket
>>>
>>> hote = '127.0.0.1'
>>> port = 12800
>>>
>>> connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> connexion_principale.bind((hote, port))
>>> connexion_principale.listen(5)
>>> print("Le serveur écoute à présent sur le port {}".format(port))
Le serveur écoute à présent sur le port 12800
>>> connexion_avec_client, infos_connexion = connexion_principale.accept()
>>>
>>> msg_recu = b""
>>> while msg_recu != b"fin":
... msg_recu = connexion_avec_client.recv(1024)
... # L'instruction ci-dessous peut lever une exception si le message
... # Réceptionné comporte des accents
... print(msg_recu.decode())
... connexion_avec_client.send(b"5 / 5")
...
premier message reçu...
deuxième...
fin
>>> print("Fermeture de la connexion")
Fermeture de la connexion
>>> connexion_avec_client.close()
>>> connexion_principale.close()
>>>
Sois plus attentif à ce que tu fais et à ce que te dit (très clairement) Python.
Bonne continuation.
[edit] Tu es entrain de me faire regretter mes mots... Bref : le port doit être un entier et non une chaîne de caractères.
[edit2] Je pense que les sockets c'est trop tôt pour toi. Un tuto ça se lit en commençant par le début (comme beaucoup de choses d'ailleurs...)
- Edité par Anonyme 4 février 2014 à 23:39:56
Problème quand j'éssaye de coder mon client,réseau
× 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.
Tu n'écrases pas ton socket par un tuple ci-dessus ?
j'avais oublié le bind je l'ai rajouter et j'ai toujours la même erreur. mais merci de tes réponses.
même quand je copie colle le code du site du zéro j'ai la même erreur : SyntaxError: multiple statements found while compiling a single statement
j'ai cette erreur...