Bonjour,

Je suis néophyte en Python et j'ai commencé à faire un programme utilisant les sockets pour communiquer avec un serveur.

Lorsque je lance le programme, je fais l'authentification et lorsque par exemple je veux lancer la commande " shutdown " ou même annonce, j'obtiens l'erreur : " TypeError: 'str' does not support the buffer interface "

Sans plus attendre, voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
import socket
 
i = 1
 
login = input("Connexion : ")
 
if(login != 'holox'):
	print("Mot de passe incorrect !")
else:
	print("Connexion reussie !")
	while i == 1:
 
		addrIP = "127.0.0.1"
		port = 30001
 
		def sendSocket(command, data):
			connexionPrincipal = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
			connexionPrincipal.connect((addrIP, port))
			socket_X = command + chr(1) + data
			connexionPrincipal.send(socket_X)
			connexionPrincipal.close()
 
		commande = input("Qu'est ce que vous voulez faire ?")
		if commande == "shutdown":
			sendSocket("shutdown", "")
			print("Serveur eteint")
		elif commande == "reloadbans":
			sendSocket("reloadbans", "")
			print("Les bans sont reloads")
		elif commande == "ha":
			annonce = input("Quelle est l'annonce que vous voulez passer ?")
			sendSocket('ha', str(annonce))
			print("Annonce envoyee !")
 
		else:
			print("Commande incorrect !")
 
os.system("pause")

Voila, le code n'est peut-être pas très propre, mais je verrais pour l'optimiser lorsque j'aurais un peu plus de connaissances. Le but pour l'instant reste de faire un script fonctionnel.


Merci d'avance,
Au revoir.