Je souhaite utiliser plusieurs liaisons sur un composant socket TIdTCPServer
pour envoyer des données à plusieurs clients différents. Je peux créer avec succès les liaisons et attribuer un numéro de port différent à chacune. Voici mon code pour créer les liaisons:Comment utiliser le composant Indy pour envoyer à partir d'un socket IDTCPServer avec plusieurs liaisons
IdTCPServer1.Active := False;
IdTCPServer1.Bindings.Clear;
{create the new sockets}
for i := 0 to NumberOfItemsSpin.Value-1 do
begin
IdTCPServer1.Bindings.Add;
IdTCPServer1.Bindings.Items[i].Port := StartingPortSpin.Value+i;
end;
SocketsCreatedCount := IdTCPServer1.Bindings.Count;
Timer1.Enabled := SocketsCreatedCount > 0;
IdTCPServer1.Active := True;
Les clients connaissent l'adresse IP et le port pour se connecter à et sont en mesure d'établir une connexion réussie. Cependant, je dois asynchroneenvoyer des données à l'un des clients connectés en fonction de certains événements.
Je sais que je peux détecter un événement OnExecute
, obtenir le Context
et répondre, mais mon socket serveur doit fonctionner de manière asynchrone. Il ne sera pas interrogé par le client.
Je connais l'adresse IP du client et le numéro de port de l'information de connexion. Cependant, je ne peux pas trouver un moyen d'envoyer des données à un client spécifique. Comment puis-je utiliser le composant pour mapper correctement la liaison et envoyer des données au bon client connecté?