Probleme avec sockets

PsyClown44 Messages postés 4 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 8 avril 2004 - 7 mars 2004 à 17:59
cs_MaXoR Messages postés 38 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 18 décembre 2005 - 9 mars 2004 à 01:10
Salut!

J'ai un prob avec le composant TClientSocket : je n'arrive pas a recevoir de paquets lors d'une connexion!

Voila le code:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp;

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
procedure FormCreate(Sender: TObject);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Open; //g deja config les param
end;

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
MessageDlg(Socket.ReceiveText,mtinformation,[mbOk],0);
end;

end.

Je débute en delphi et je sais pas ce qui va pas :'(
Delphi m'affiche aucune erreur mais m'affiche pas de msgbox non plus !!

3 réponses

cs_christo01 Messages postés 22 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 17 janvier 2006
8 mars 2004 à 11:23
Salut !
Voici des extraits de code à inclure dans ton prog, ainsi que deux Button, que tu dois nommer ButtonConnect et ButtonDisconnect. Tu dois veiller à mettre le même port ('1234' par exemple) dans les deux PCs. Et tu dois mettre l'adresse du PC server ('192.168.0.2' chez moi)

procedure TForm1.ButtonConnectClick(Sender: TObject);
begin
ClientSocket1.Port:=StrToInt('1234');
ClientSocket1.Host:='192.168.0.2';
clientsocket1.Open();
end;

procedure TForm1.ButtonDisconnectClick(Sender: TObject);
begin
clientsocket1.Close;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
//Evite d'afficher un message d'erreur
ErrorCode := 0 ;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var tmp: string;
begin
tmp:= socket.ReceiveText;
memo1.lines.add(tmp);
end;

Tiens moi au courant !!
0
PsyClown44 Messages postés 4 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 8 avril 2004
8 mars 2004 à 19:19
re!
javé reduit le code de mon dernier post au minimum ;)

En suivant ton modèle, j'obtient ceci :

procedure TForm1.ButtonConnectClick(Sender: TObject);
begin
ClientSocket1.Port:=StrToInt('1234');
ClientSocket1.Host:='127.0.0.1';
Clientsocket1.Open();
end;

procedure TForm1.ButtonDisconnectClick(Sender: TObject);
begin
clientsocket1.Close;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
//Evite d'afficher un message d'erreur
ErrorCode := 0 ;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var tmp: string;
begin
tmp:= socket.ReceiveText;
memo1.lines.add(tmp);
end;

Je met le port 1234 en écoute, et la connexion se fait correctement.
Seulement en envoyant des données du server au client, la procedure OnRead de ClientSocket1 ne se déclenche pas :/
Le mémo reste vide
0
cs_MaXoR Messages postés 38 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 18 décembre 2005
9 mars 2004 à 01:10
tien voici la meuilleur example que tu peux pas trouver http://delphipage.free.fr/sockets.html
0
Rejoignez-nous