Bonsoir à tous?
Je suis un apprenti de Delphi 7, J'ai un grand problème sur le socket Delphi 7
j'ai pu créer ma propre tchatch dans ma machine et ça marche très bien sur Windows 7 de ma machine vers une autre machine distant wifi local, mais j'ai voulu essayé d’améliorer l’application comme j'ai le cite en bas mais ça ne marche pas du tout.
Voilà ce que j'ai voulais ajouté à mon application.
1-Dans le formulaire client je veut avoir deux(2) edit text puis envoyé les differents saisies dans ce deux edit text dans le formulaire serveur. c'est à dire j'ai 2 edittext dans form Client et 2 edittext dans form Serveur. Pour mon application quand j'ai click le bouton envoyer dans form client les données des 2 edittext dans form Client sont bien envoyés dans le serveur mais elles sont tous mis(concatener) dans un seul edittext du Formulaire serveur et l'autre edittext du serveur reste vide. Ma question est,comment résoudre ce problème pour que les 2 edittext du serveur reçoivent les données saisies dans les 2 edittext dans le formulaire client?
Codes coté Client Socket
Codes coté Serveur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 //Bouton Connecté procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Port:=StrToInt(Edit1.Text); ClientSocket1.Host:=Edit2.Text; ClientSocket1.Open; end; //Bouton Deconnecté procedure TForm1.Button2Click(Sender: TObject); begin ClientSocket1.Close; end; //Bouton envoyé procedure TForm1.Button3Click(Sender: TObject); begin ClientSocket1.Socket.SendText(Edit3.Text); ClientSocket1.Socket.SendText(Edit4.Text); Memo1.Lines.Add('Messages envoyés au serveur'); end; //Configuration du ClientSocket1 procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Connecté a '+Socket.RemoteHost); end; procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Serveur à été retrouvé'); end; procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Deconnecté'); end; procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin if ErrorEvent=eeGeneral then Memo1.Lines.Add('Erreur inattendu'); if ErrorEvent=eeSend then Memo1.Lines.Add('Erreur d''écriture sur la connection serveur'); if ErrorEvent=eeReceive then Memo1.Lines.Add('Erreur de lecture sur la connection serveur'); if ErrorEvent=eeConnect then Memo1.Lines.Add('Une demande de connexion dejà accepté mais n''a pas pu être achévé'); if ErrorEvent=eeDisconnect then Memo1.Lines.Add('Erreur sur la fermeture connection'); if ErrorEvent=eeAccept then Memo1.Lines.Add('Erreur d''acceptation d''une connection client'); end;
2- Comment faire? lorsque j'ai souhaite avoir une base de données liée dans le formulaire serveur et que la saisi (le remplissage) de cette base de données se fait à partir de la formulaire client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 //Bouton Connecté procedure TForm1.Button1Click(Sender: TObject); begin ServerSocket1.Port:=StrToInt(Edit1.Text); ServerSocket1.Open; end; //Bouton Deconnecté procedure TForm1.Button2Click(Sender: TObject); begin ServerSocket1.Close; Memo1.lines.Add('Serveur deconnecté'); end; //Configuration ServerSocket1 procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Informations reçus'); Edit2.Text:=Socket.ReceiveText; Edit3.Text:=Socket.ReceiveText; end; procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Connecté à '+Socket.RemoteAddress); end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin memo1.Lines.Add('Connexion accepté par le serveur'); end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin memo1.Lines.Add('Client deconnecté'); end; procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin if ErrorEvent=eeGeneral then Memo1.Lines.Add('Erreur inattendu'); if ErrorEvent=eeSend then Memo1.Lines.Add('Erreur d''écriture sur la connection serveur'); if ErrorEvent=eeReceive then Memo1.Lines.Add('Erreur de lecture sur la connection serveur'); if ErrorEvent=eeConnect then Memo1.Lines.Add('Une demande de connexion dejà accepté mais n''a pas pu être achévé'); if ErrorEvent=eeDisconnect then Memo1.Lines.Add('Erreur sur la fermeture connection'); if ErrorEvent=eeAccept then Memo1.Lines.Add('Erreur d''acceptation d''une connection client'); end;
3-Comment faire pour que n> 2 clients peuvent tchatcher simultanément puis les identifiés dans le serveur lorsqu’ils sont connecté
Merci pour tous de vos réponses favorables car cela me permettra d'avancer
Partager