Tel net

Description

Sur le même pricipe que tel net ... on dit le nom d'un serveur , on en choisit un port ... puis on commence à parler avec le server ...

Le probléme c'est que je viens tout juste de débarquer sur Delphi ... J'en avais fait avant mais jamais sur du socket ... Donc veuillez me dire si mon code ne peut être plus optimisé ... surtout la gestion de recetion du texte du serveur ... Ce que je viens de faire marche niquel ... mais ça me semble chelou d'utiliser un timer à la place d'un evenement pour intercepter les messages du serveur ....

Bonne prog à tous =)

AKH.

Source / Exemple :


{
Le code n'a pas trés grand intérét mais bon ...
Puisqu'il le faut .... =)
Allez cependant voir le zip !

}

var
  Form1: TForm1;
  Recept: String;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:=Edit1.Text;
// En vb cela revient au remotehost
ClientSocket1.Port:=StrToInt(Edit2.Text);
// En vb c'est le Val(String) qui est remplacé par StrToInt
ClientSocket1.Open;
// Ceci c'est la fonction Connect sauf qu'en delphi
// on ne peux pas lui rajoutter d'autres paramétres mais
// juste en faire l'appél ....
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
     RichEdit1.Text:=RichEdit1.Text+chr(13)+chr(10)+'Connecté au serveur '+Edit1.Text;
// Pour inscrire une zone de texte c'est simple
// au lieu des guillemets c'est les  ' ' ...
// au lieu de la chaîne & on mets le +
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
     RichEdit1.Text:=RichEdit1.Text+chr(13)+chr(10)+'Déconnection du Serveur '+ClientSocket1.Host;
     Clientsocket1.close;
     richedit1.SelStart := richedit1.GetTextLen;
end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
If Key = chr(13) then
begin
clientsocket1.Socket.SendText(Edit3.Text+chr(13)+chr(10));
RichEdit1.Text := RichEdit1.Text+chr(13)+chr(10)+'Client:'+Edit3.Text;
Edit3.Text:='';
richedit1.SelStart := richedit1.GetTextLen;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Recept:=clientsocket1.Socket.ReceiveText;
if Recept  <> '' then
begin
   RichEdit1.Text := RichEdit1.Text+chr(13)+chr(10)+'Server:'+Recept;
   richedit1.SelStart := richedit1.GetTextLen;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;

end.

Conclusion :


Voilà ... ouf ! Enfin , mon premier prog en Delphi =) ...

Codes Sources

A voir également

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.