Bonjour&Bonsoir,
En ce moment je commence gentillement la progrmmation d'un bot D2 en python en effectuant quelques tests.
mon problème est que j'ai un thread avec une boucle infinie qui est en écoute sur un serveur du jeu et qui stock tout ca dans un buffer.
Or, je suis moi même connécté en jeu et lorsque je simule des actions (deplacement de cellule, msg privé) de sorte a générer des paquets, je ne vois rien qui passe dans mon script python alors que sous wireshark je vois bien une communication entre moi et l'ip du serveur D2. Voici donc mon code:
Cliquez pour révéler
Cliquez pour masquer
import sys
import socket
import threading
import struct
class listenningThread(threading.Thread): #Je définit mon thread d'ecoute
def __init__(self, socket):
threading.Thread.__init__(self)
self.socket = socket
self.receiveBuffer = bytearray() #buffer
self.finalBuffer = bytearray()
self.bufferSize = 0
def run(self):
while 1: #Boucle infinie
self.receiveBuffer = bytearray(100)
self.bufferSize = 0
self.bufferSize = self.socket.recv_into(self.receiveBuffer) #On écoute
if self.bufferSize:
print "Packets received... %i bytes" % (self.bufferSize)
self.finalBuffer = bytearray(self.bufferSize) #On définit la taille du buffer en fonction du nombre d'octets recu
self.finalBuffer[:] = self.receiveBuffer #On copie receiveBuffer dans finalBuffer
for i in range (0, self.bufferSize): #On affiche ce qui a été recu
print (self.finalBuffer),
if (self.bufferSize==0):
print "No packets received"
#Lancement du programme
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
socket.connect(('213.248.126.89', 5555)) #Connection au serveur
except socket.error:
print "Could not reach D2 servers"
sys.exit()
print "Connection established"
listen = listenningThread(socket)
listen.start() #On lance le thread
Merci d'avance pour toutes vos réponses