TServerSocket et TClientSocket

cs_Gimli Messages postés 21 Date d'inscription mardi 31 décembre 2002 Statut Membre Derniè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.

2 réponses

Utilisateur anonyme
6 janv. 2008 à 00:07
Salut

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.

Une facon de faire est d'utiliser un séparateur :

ClientSocket1.Socket.SendText('Mon action'+'|'+'Param1+'#'+Param2');

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.
0
Utilisateur anonyme
6 janv. 2008 à 00:08
Je te conseille fortement de regarder des protocoles simples comme HTTP, FTP, SMTP pour voir comment fonctionne un protocole de communication.
0
Rejoignez-nous