J'ai deux formulaires, un pour le serveur et un autre pour le client. Après avoir déposé ttcpserver sur le formulaire de serveur et définissant sa propriété localhost 127.0.0.1 et propriété localport à 55555 et propriété Active à true j'ai écrit un button1 (sendtextbutton) gestionnaire d'événements onclick:Impossible d'envoyer du texte (chaîne) de ttcpserver à ttcpclientserver
procedure TForm2.Button1Click(Sender: TObject);
begin
TcpServer1.Sendln('message');
end;
ensuite sur le formulaire client j'ai laissé tomber 1 TTcpClient une étiquette 2 boutons, ensemble clients propriété hôte distant pour 127.0.0.1 et le port distant à 55.555, a écrit un gestionnaire d'événements pour ConnectButton (button1):
procedure TForm2.Button1Click(Sender: TObject);
begin
try
TcpClient1.Active := true;
except
showmessage('error');
end;
end;
a écrit un onConnect pour TTcpClient:
procedure TForm2.TcpClient1Connect(Sender: TObject);
begin
Label1.Caption := 'connected!';
end;
puis enfin une Hadler d'événement onrecieve pour TTcpClient:
procedure TForm2.TcpClient1Receive(Sender: TObject; Buf: PAnsiChar;
var DataLen: Integer);
begin
Label1.caption := TcpClient1.Receiveln();
end;
Ma légende de programmes clients était censé changer de « message » (après s'être connecté et cliquez sur le bouton sur mon formulaire de serveur), mais il Doest. Est-ce que je le fais de la mauvaise façon? Si oui, alors comment le faire? J'essaie d'envoyer un message texte du serveur au client (Oui une connexion inversée!)
Votre serveur ne parle pas au socket client. Voir ici pour un exemple: http://stackoverflow.com/questions/1591256/delphi-ttcpserver-connection-reset-when-reading – mjn
@ mjustin: mais la légende de mon client étiquette tourne à connectée signifie que je suis connecté :( –
le client est connecté, mais le serveur ne peut l'envoyer qu'en utilisant la bonne socket Comment 'TcpServer1.Sendln()' sait-il quel client doit recevoir les données (il peut y avoir plusieurs clients connectés en même temps)? il utilise 'ClientSocket.Sendln' côté serveur.Je peux aussi recommander Internet Direct (Indy) - vous trouverez plus d'exemples de code pour cela. – mjn