Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi einfachen text per idctpserver an client senden, wie geht da (https://www.delphipraxis.net/33663-einfachen-text-per-idctpserver-client-senden-wie-geht-da.html)

vollmer-net 10. Nov 2004 21:13


einfachen text per idctpserver an client senden, wie geht da
 
wie kann ich das machen?

ich brauche nur den befehl? werd nicht schlau aus den anderen beiträgen!

alex

vollmer-net 11. Nov 2004 13:01

Re: einfachen text per idctpserver an client senden, wie geh
 
niemand ne ahnung?=

Stevie 12. Nov 2004 07:14

Re: einfachen text per idctpserver an client senden, wie geh
 
Hi,

in den meisten Events des Servers gibt's den Parameter AThread. Dieser bezieht sich auf die Client-Verbindung, die dieses Event ausgelöst hat. Somit kannst du z.B. folgendes machen:
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
  AThread.Connection.WriteLn('Hallo Welt');
end;
Wenn du aber unanhängig von einem Event was verschicken möchtest, dann geht das etwa so:
Delphi-Quellcode:
with IdTCPServer1.Threads.LockList do
try
  for i := 0 to Count do
    TIdPeerThread(Items[i]).Connection.WriteLn('Hallo Welt');
finally
  IdTCPServer1.Threads.UnlockList;
end;
Dies sendet an alle verbundenen Clients die Nachricht.

Noch ein Tip: Die Klasse TIdPeerThread verfügt über eine Property, die sich Data nennt. Diese kann man wunderbar dazu nutzen, an den Thread die Benutzer-Daten zu hängen, um hinterher einen bestimmten Thread herauszufinden.

MfG
Stevie

P.S. Meine Beispiele sind mit Indy 8, und könnten etwas von der 9er-Version abweichen, die du sicherlich benutzt.

vollmer-net 12. Nov 2004 13:45

Re: einfachen text per idctpserver an client senden, wie geh
 
und wie kann ich beim clienten drauf zugreifen....dort gibts ja kein onexecure oder so!

Stevie 12. Nov 2004 13:51

Re: einfachen text per idctpserver an client senden, wie geh
 
Wenn du schreiben willst:
Delphi-Quellcode:
IdTCPClient1.WriteLn('Hallo Welt');
Und wenn du lesen willst, was vom Server kommt, dann machst du einen Timer und ins OnTimer-Event:
Delphi-Quellcode:
var
  s: string;
begin
  s := IdTCPClient1.ReadLn(#$A, 5);
  if s <> '' then
  begin
    {...}
  end;
end;

need-some-blood 3. Dez 2004 13:17

Re: einfachen text per idctpserver an client senden, wie geh
 
Hänge meine Frage hier mal ran.

simple Client-Server-Anwendung

Server funzt bestens. client ließt alle Daten sofern welche am socket anstehen. Nun möchte ich aber, das der Client automatisch alle 1000ms den Socket liest.

Bisher war das ganze in nem Timer
Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  try
   idtcpclient1.readbuffer(recvstring,20); // Habs auch schon mit readln('',800,20); versucht
  finally
    memo1.lines.add(recvstring);
  end;
end;
Habe das Timeout auf 800 ms gesetzt. Aber entweder stürzt das Prog ab, oder es erscheint eine Exception, kommt drauf an ob ich readbuffer, oder readln nutze.

Die Boardsuche habe ich schon genutz, aber nisher hat nix genutzt.

Danke

Stevie 3. Dez 2004 13:40

Re: einfachen text per idctpserver an client senden, wie geh
 
Hast du es schon so versucht:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  s: string;
begin
  repeat
    s := IdTCPClient1.ReadLn('', 0, 20);
    if s <> '' then
      Memo1.Lines.Add(s);
  until s = '';
end;
P.S.: Herzlich willkommen in der DP!

need-some-blood 3. Dez 2004 14:04

Re: einfachen text per idctpserver an client senden, wie geh
 
Gleiches Problem. Programm bleibt stehen, und wird warscheinlich versuchen Daten aus dem Socket zu lesen.

Weiterer Vorschläge?

PS:Danke

Ultimator 3. Dez 2004 14:05

Re: einfachen text per idctpserver an client senden, wie geh
 
Hast du ein IdAntiFreeze auf der Form?

Spurius 4. Dez 2004 10:54

Re: einfachen text per idctpserver an client senden, wie geh
 
Ich hatte auch mal so ein ähnliches Problem, ich glaube da musst du Threads verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz