Il arrive souvent que l'on ne recoivent pas toute les informations attendu lors d'une connexion rézeau en python, il faut pour cela s'assurer que l'on a bien recu toutes les informations et pas seulement une partie, ici on réecris la méthode d'envoie et de réception qui ajoute la taille des informations à envoie/recevoir sur les 4 premiers caractères.
Source / Exemple :
class MaSocket:
def __init__(self,socket):
self.s = socket
def send_data(self,data):
taille = len(data) + 4
prefixe =""
for i in range(4):
reste = taille % 256
taille = taille // 256
prefixe = chr(reste) + prefixe
data = prefixe + data
self.s.send(data)
def recieve_data(self):
data = self.s.recv(BUFFER_SIZE)
len_data_recu = len(data)
prefixe = data[:4]
taille = 0
for i in range(4):
taille = taille * 256 + ord(prefixe[i])
taille = taille - len_data_recu
while taille > 0:
new_data = self.s.recv(BUFFER_SIZE)
data = data + new_data
taille = taille - len(new_data)
return data[4:]
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.