cs_Gimli
Messages postés21Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 5 janvier 2008
-
5 janv. 2008 à 16:20
Utilisateur anonyme -
6 janv. 2008 à 00:08
Bonjour,
quand j'utilise SendText et SendBuf des TClientSocket et des TServerSocket, delphi me concatène les 2 éléments envoyés, du coup tout devient illisible pour celui qui réceptionne.
Si quelqu'un avait une idée pour pouvoir envoyer les 2 éléments séparément, ça m'aiderais beaucoup.
merci.
Un peu normal comme comportement : ton serveur il recoit des données. Il ne sait pas faire la différence entre telles et telles choses : en tout cas pas tout seul.
Imagine tu envois à ton serveur, un fichier de 10Mo. L'upload est à 50 % et tu lui envois un string, c'est à dire une autre donnée. Ben ton serveur il faut pas la différence : pour lui un flux de données est un flux de données.
C'est pour ca que : Qui dit client/serveur dit protocole de communication. Chose que tu ne sembles pas avoir fait.
Ton serveur recoit : Mon action|Param1#Param2.
Un simple traitement avec Pos et Copy te permet de récupérer:
Mon_action, Param1 et Param2
Et ensuite un Case of (Attention pour les strings faut ruser), ou des If .. Then .. Else.
Et suivant le "Mon_Action" une procédure est déclenchée coté serveur.
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Var
Str, Mon_Action:String;
begin
Str:=ServerSocket1.Socket.ReceiveText;
//Procedure pour parser le message : on récupère Mon_Action
If Mon_Action='Boite de dialogue' Then
Showmessage('Boite de Dialogue');
end;
A partir de là; il est parfaitement possible de trier des données recues;
@++
Ps : Un ptit bout de code ne ferait pas de mal, pour nous éclairer aussi dans ton aide.