Pb avec les composants reseaux

dampeel Messages postés 2 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 7 mai 2002 - 7 mai 2002 à 15:36
dampeel Messages postés 2 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 7 mai 2002 - 7 mai 2002 à 18:04
Je réalise un petit programme en ce moment et j'ai une question a poser à ce propos...
J'utilise des composants serversocket et clientsocket pour réaliser mon jeu en reseau, pour communiquer entre les 2 machines distantes j'utilise ceci :

procedure Trezo.SendMsg(msg:string);
begin
if serv then
ServerSocket.Socket.Connections[0].SendText(msg)
else
ClientSocket.Socket.SendText(msg);
end;

et je lis les infos reçues avec ceci pour le serveur :

procedure Trezo.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var mess : string;
begin
mess:=Socket.ReceiveText;
end;

et ceci pour le client :

procedure Trezo.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var mess : string;
begin
mess:=ClientSocket.socket.ReceiveText;
end;

Mon probleme est le suivant ; parfois une information ne passe pas, elle est carrément "zappée". Je pense qu'il se passe quelque chose comme un "chevauchement" entre deux envois d'infos trop rapprochés... mais en fait je n'en suis absolument pas sur. Comment pourrais éviter ce probleme et etre sur que tout message envoyé sera bien reçu ?

merci d'avance
damien peelman dampeel2000@yahoo.fr

2 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
7 mai 2002 à 17:07
As-tu essayé d'utiliser deux paires de client/serverSocket pour faire les échanges, toutes les trames seraient envoyées par les ClientsSockets et envoyées sur les ServerSocket correspondants ? ( les serveurs ne seraient donc utilisés que pour la lecture et les clients que pour l'écriture )

Je ne suis pas un spécialiste du réseau, mais par contre l'avantage de cette solution est que tu pourrais ajouter un compte rendu emis par les serveurs aux clients pour chaque réception. Donc si un compte rendu n'est pas reçu ( au bout d'un certain temps ), le client pourrait envoyer de nouveau la trame. ( je l'ai déjà fait )

--- :sleepy) Nono du Moulin :sleepy) ---
0
dampeel Messages postés 2 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 7 mai 2002
7 mai 2002 à 18:04
merci pour la réponse...
oui, en fait j'ai deux paires serveur/client, pour ce ki est de renvoyer un accusé de réception aprés chaque message reçu faudra ke j'essaye mais étént donné que tout doit etre géré en temps réel j'ai peur qu'il se produise un décalage entre les deux machines.
dam
0
Rejoignez-nous