A voir également:
- [Python] socket et encore l'encodage
- Encodage ascii - Guide
- Citizen code python avis - Accueil - Outils
- Ce programme est écrit en python ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
1 réponse
Guitsi
Messages postés
205
Date d'inscription
vendredi 12 août 2011
Statut
Membre
Dernière intervention
21 février 2013
47
13 août 2011 à 09:00
13 août 2011 à 09:00
Bonjour, pourquoi n'utilises-tu pas SSH ?
Sinon essaye lors de l'envoi de la réponse de mettre plutôt ça : monsocket.send(reponse).encode("utf-8")
L'encodage des caractères lors de communications réseau n'est jamais simple.
Sinon essaye lors de l'envoi de la réponse de mettre plutôt ça : monsocket.send(reponse).encode("utf-8")
L'encodage des caractères lors de communications réseau n'est jamais simple.
13 août 2011 à 09:07
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)
13 août 2011 à 09:19
13 août 2011 à 09:21
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 = ""
13 août 2011 à 09:23
13 août 2011 à 10:04
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