Salut a tous,
Je veux réalisé une petite application cient/serveur avec les composants standards: ClienSocket & ServerSocket.(delphi7)
Pour le transfert des messages client---->vers serveur ça marche T.bien.
(car 1 client ne peut connecté qu'avec un seul serveur dans un moment donné).
Mais,le transfert serveur ---->client ma posé des problémes.
comment le serveur envoi des messages à 1 client spécifié?
1-les propriétes du serveur:
port: 100
servertype: stNonBlocking
threadcahesize: 10
2-les propriétés du client:
port: 100
Cienttype: stNonBlocking
address: ip d'un client (quelconque)
Host: nom de la machine d'un client
RQ: Adress ou Host suffisante pour indentifer un client("adress" c plus rapide!!)
voila mon code:
1-pour le client:
2-pour le 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 procedure TForm1.Button1Click(Sender: TObject); begin If (ClientSocket1.Active)then begin ClientSocket1.Socket.SendText(Edit1.Text); edit1.Text:=''; end; //pour envoyer un message au serveur procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(socket.ReceiveText); end; //pour recevoire le message du serveur
le message d'erreur envoyé :
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 procedure TForm2.Button1Click(Sender: TObject); begin if(ServerSocket1.Active)then begin ServerSocket1.Socket.SendText(Edit1.Text); edit1.Text:=''; end; //pour envoyer un message au client //ici le probléme:au quel client le message est envoyé //(les indenfiants du client) procedure TForm2.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(socket.ReceiveText); end; //pour recevoire le message d'un client
Erreur socket windows: une requete d'envoi ou de reception n'a pas été autorisée,car le socket n'est pas connecté et aucun adress n'a été fournie
(10057),avec l'API send.
RQ: j'ai activé les 2 sockets au debut d'application
Merci
Partager