[Python] socket et encore l'encodage
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, je programme un serveur de controle à distance en python (qui execute des commande dos et envoi le résultat au client)
Il y a un problème au niveau de l'envoi des donnees tout est décalé (voir image) :
http://img11.hostingpics.net/pics/244283serv.png
Au début je me suis dit que cela venais du client telnet de windows mais avec putty c'est pareil par contre dans la console de python tous est OK
--
http://www.mypelemele.fr
Il y a un problème au niveau de l'envoi des donnees tout est décalé (voir image) :
http://img11.hostingpics.net/pics/244283serv.png
Au début je me suis dit que cela venais du client telnet de windows mais avec putty c'est pareil par contre dans la console de python tous est OK
--
http://www.mypelemele.fr
A voir également:
- [Python] socket et encore l'encodage
- Citizen code python avis - Accueil - Outils
- Citizen code python solution - Forum Python
- Aide exercice Python sur site citizen code ✓ - Forum Python
- Socket processeur - Forum Processeur
- Citizen Code : Saison 1 Episode 3, difficulté à comprendre - Forum Python
Pour le "encode" voila l'erreur :
conn.send(execute.encode("utf-8"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 52: ordinal not in range(128)
data = conn.recv(2048)
if not data: break
if data != "\r\n":
cmd = cmd + data
else:
print " >> " + cmd
execute = os.popen(cmd).read()
print execute
conn.send(execute.decode("utf-8"))
conn.send(" >> ")
cmd = ""
import socket, sys, os
HOST = "192.168.1.142"
PORT = 50000
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
msgacceuil = "Vous êtes connecté, envoyez vos commandes"
commcli = ""
try :
conn.bind((HOST,PORT))
except socket.error:
print("La liaison n'as pu être établie")
sys.exit()
while 1 :
print("Serveur prêt, en attente de clients...")
conn.listen(2)
connexion, addr = conn.accept()
print("Client %s connecté sur le port %s" % (addr[0], addr[1]))
connexion.send(msgacceuil.encode("Utf8"))
data = connexion.recv(2048).decode("Utf8")
while 1:
if data !="\r\n":
commcli += data
else :
print(">> %s" % commcli)
if commcli.upper() == "EXIT" or commcli == "":
break
execute = os.popen(commcli).read()
print(execute)
connexion.send(execute.encode("Utf8"))
commcli = ""
data = connexion.recv(2048).decode("Utf8")
connexion.send('FIN'.encode("Utf8"))
print("Fin de la connexion")
connexion.close()
Par contre il est interessant aussi d'utiliser python en client et non pas Putty ou telnet