Probleme Socket sur un Tchat

Résolu
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010 - 10 juin 2010 à 20:13
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010 - 4 juil. 2010 à 13:23
Bien le Bonsoir a toutes et a tous .

Programmeur en Delphi depuis pas très longtemps (mais ayant quand même les bases) (Enfin je pense xD ^^ )

Je me suis mis a l'idée de crée un Programme serveur/Client grâce aux Socket, que j'ai réussis !

Comme j'ai réussis mon opération, je me suis dit que faire un Tchat serai autant possible.

Mais lorsque je le test avec un ami, une erreur survient !

(Vous allez me dire que j'ai qu'a tapé le nom de l'erreur chez notre ami google, ce que j'ai fait. J'ai eu explication, mais pas moyen de réparation...

Donc mon Joli code d'erreur :
" Erreur Socket 10060" --> Time out



Voiçi Mon code : (Je n'ai pas rajouté les OnError sur le client, ni sur le serveur)

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Edit2: TEdit;
    Button2: TButton;
    Button3: TButton;
    GroupBox3: TGroupBox;
    Memo1: TMemo;
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    Button4: TButton;
    Edit3: TEdit;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure OnClientConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure OnClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure OnListen(Sender: TObject; Socket: TCustomWinSocket);
    procedure OnClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure OnDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button5Click(Sender: TObject);
    procedure FermetureForm(Sender: TObject; var Action: TCloseAction);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:=StrToInt(edit1.text);
ServerSocket1.Open ;
Memo1.Lines.add('Votre Port a était ouvert!');

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ServerSocket1.Close ;
Memo1.Lines.Add('Votre port a était fermé!')  ;
end;

procedure TForm1.OnClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.add('Votre Contact c"est connecté ');
end;

procedure TForm1.OnClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.add('Votre Contact s"est déconnecté ');
end;

procedure TForm1.OnListen(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.add('Vous êtes près a reçevoir');
end;

procedure TForm1.OnClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.add('LUI : ' + Socket.ReceiveText + ' ');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Host:=edit2.Text ;
ClientSocket1.Port:=StrToInt(edit1.text);
ClientSocket1.Open ;
Memo1.Lines.add('Vous vous connecté a ' + edit2.text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ClientSocket1.Close;
Memo1.Lines.add('Vous vous déconnecté de ' + edit2.text);
end;

procedure TForm1.OnConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.add('Vous vous connectez à ' + edit2.Text );
end;


procedure TForm1.OnDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.add('Vous vous êtes déconnecté de ' + edit2.text );
end;


procedure TForm1.Button5Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText(edit3.Text)  ;
Memo1.Lines.add('MOI : ' + edit3.text) ;
end;

procedure TForm1.FermetureForm(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Close;
ServerSocket1.Close;
end;

end.


Donc si quelqu'un pourrai m'aider ce serai super sympa =)
Merci pour vos futur réponse <3
A voir également:

31 réponses

bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
3 juil. 2010 à 13:33
Bon et bien, je crois que je vais poster sur un autre forum ...




Je remercie quand même Bacterius pour sa petite aide que je vais validé (même si ça ne ma pas

trop aidé pour mon problème)


++
0
Utilisateur anonyme
3 juil. 2010 à 14:38
Oh là là c'est quoi cette attitude capricieuse : On dirait une nana .

D'aller sur un autre forum te servira à rien : Ils ne pourront pas t'aider plus.

L'intervention que tu souhaites est qu'on télécharge ton source et que l'on teste avec toi ce qui n'est pas la mentalité d'un forum (Et ca m'étonnerait que tu trouves facilement une ame charitable pour le faire )et en plus cela induit de te filer son adresse MSN ainsi IP que son IP et ce genre d'info en général les gens évient de les filer à un inconnu et ca peut se comprendre

Plutôt que d'aller sur un autre forum, as tu penser à tester ton tchat avec un autre pote pour voir si tu as le même problème : Si c'est oui le problème est au niveau de ton cote, si c'est non le problème vient d'ailleurs.
0
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
3 juil. 2010 à 15:47
Bah dès fois il faut insister pour avoir un réponse dans notre monde ! ^^

Je suis d'accord que personne ne donnera son IP, et son adresse internet ici. Ce qui est entièrement logique ^^ (a par si il manque une case a cette personne)
Mais cela n'empêche pas que la personne qui m'aide, a elle des contacts de confiances, qui puissent l'aidé a faire l'expérience.

Puis "Oui" , j'ai testé avec d'autre personne, cette erreur survient toujours.

Mais merci quand meme
0
Utilisateur anonyme
3 juil. 2010 à 21:11
Essaye ca
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
4 juil. 2010 à 00:31
Alors j'ai testé !

Avec un autre de mes amis ! Il n'y a apparemment pas d'erreur !
Mais Mon contact reçoit mes messages, mais moi je ne reçois pas les siens !
Et son pare feu ne bock rien, il a vérifié

(et je ne vois pas la différence avec mes codes )
0
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
4 juil. 2010 à 00:32
J'ai oublié de te remercié quand même =)

Merci
0
Utilisateur anonyme
4 juil. 2010 à 03:41
Tu vois pas la différence avec ton code : Comme Bacterius te l'a dis il me semble, a chaque fois tu connectais client et serveur sur une même form. Et là il y a une nette différence avec mon code .Là tu connectes soit l'un soit l'autre. Je te conseille de revoir les notions de socket, de client et de server car là tu as loupé quelque chose .

Sinon il y a beaucoup de choses qui ne vont pas dans ton code : tu ne vérifies pas que les Edit sont remplis, tu désactives des boutons inutilement. Enfin plein de trucs qui ne va pas.

Il y a des sources de tchat ici : tu y as jeté un oeil ?
0
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
4 juil. 2010 à 12:47
Ah bon Ok merci je vais essayer de retrouvé les tuto et etc...

Pour les sources de tchat, oui j'ai regardé ! Mais dans toute celle que j'ai regardé, il y avait dés fois des erreurs , et souvant il y avait des choses que je ne comprenais pas.

merci de ton aide en tout cas =) Je vais mieux analyser ta source !
0
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
4 juil. 2010 à 12:58
D'ailleurs, si tu as des sources de tchat en me proposé (les tiennes ou autres).

Je suis tout ouïe ^^
0
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
4 juil. 2010 à 13:08
Enfaite les seules différences que je vois entre mes sources et la tiennes ,

c'est que globalement, moi, dans un TButton je mélange Client et Serveur . Tandis que toi,

chaque Tbutton a un rôle, soit le client, soit le serveur.

Serais-ce la clef de tout xD ?
0
bigbrother26 Messages postés 35 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 4 juillet 2010
4 juil. 2010 à 13:23
Bon est bien, je conclus ma question : C'est a cause de mes Tbutton !

Mais je n'arrive pas a voir pourquoi ^^ Je te remercie de ton aide !

(je valide ta réponse , et si tu as des bonnes sources(je viens de faire moi une recherche, jsuis en train d'en analyser) n'hésite pas a les poster )

Merci encore ++
0
Rejoignez-nous