Entwickler-Ecke

Internet / Netzwerk - Verbindung mit TIdTCPClient aufbauen - bin ich blöd?


O'rallY - Do 06.02.03 15:25
Titel: Verbindung mit TIdTCPClient aufbauen - bin ich blöd?
Ok, wenn ich versuche mit der Indy-Kompo TIdTCPClient eine Verbindung zum TIdTCPServer aufzbauen, kommt eine Fehlermeldung die ich nicht einordnen kann:
Zitat:

... EIdNoExecuteSpecified with message 'No execute handler found.' ...

Der Fehler erscheint, nachdem beim Server das OnConnect-Event angeschlagen hat und vor es beim Client ausgeführt wird.

Einstellungen Client:
-Host: 127.0.0.1
-Port: 8090

Verbindung baue ich mit .Connect auf

Einstellungen Server:
-Bindings: Port 8090 (das war bei einer Demo auch so, weiß aber nicht was es hilft, bitte um Erläuterung)
-DefaultPort: 8090
-Active: true

Ich habe versucht trotz der Fehlermeldung mit Write einen String zu schicken, aber entweder ich habe ihn falsch abgefangen oder er wurde nicht geschickt. Ich glaube an letzteres.

So schwer kann das doch nicht sein, oder?


BungeeBug - Do 06.02.03 15:35

Hmm ... ich habs grad getestet so nach dem Motto "Mach mal wird schon nicht so schwer sein" ... aber ich hab das gleiche Prob wie du ... also ich warte jetzt mit dir auf ne Antwort :P

MfG BungeeBug *mitwart*


O'rallY - Do 06.02.03 19:45

Ah, ein Mitleidender :mrgreen:
Ja, das is auch mein Motto "einfach drauf los und durch, wird schon irgendwie klappen". Bis jetzt hats hats auch immer geklappt, aber bei Indy bleib ich irgendwie stecken.


O'rallY - Fr 07.02.03 15:14

Es kann doch nicht so schwer sein, mit der TIdTCP... - Kompo umzugehen. Gibts denn nicht irgendwo ein gutes Beispiel? Die Demos von Indy haben irgendwie nicht viel gebracht. Wieso ists nicht so einfach wie bei den Sockets von Delphi 6? Einfach:
-Open
-SendText
-ReceiveText
-Close

Wieso geht das nicht so bei den Indys; oder gehts so einfach?
Bitte Hilfe, ein einfaches Beispiel wie man mit dieser Komponente einen einfachen String verschickt.


Sephiroth - Fr 07.02.03 17:51

Hmm also ich hab des auch immer so angepackt wie du es da oben beschrieben hast.... Ich werd das nochmal testen und dir dann des Projekt zuschicken wenn du möchtest...

Wohin soll ichs schicken?


BungeeBug - Fr 07.02.03 18:21

Poste es doch einfach hier ...

MfG BungeeBug


O'rallY - Fr 07.02.03 20:17

Es wäre nett wenn dus einfach hier posten würdest, den relevanten Teil!


O'rallY - Fr 07.02.03 22:16

Hier gibts ein Mini-Tutorial: http://www.tutorials.delphi-source.de/indy/file002.shtml
Ok, ich habs jetzt geschafft einen String zu verschicken, nur wunderts mich, dass es kein Event gibt, dass bei senden eines Strings aufgerufen wird. Ich verstehe auch nicht, warum z.B. beim dies schreiben kann und beide alle Strings erhalten:

Delphi-Quelltext
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:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with IdTCPClient1 do begin
    Connect;
    try
      Listbox1.Items.Add(ReadLn);
      WriteLn('Hello from Basic Indy Client.');
      Listbox1.Items.Add(ReadLn);
      WriteLn('Go away!');
    finally
      Disconnect;
    end;
  end;
end;

  with AThread.Connection do
  begin
    WriteLn('Hello from Basic Indy Server server.');
    Listbox1.Items.Add(ReadLn);

    WriteLn('hello again, said the server.');
    Listbox1.Items.Add(ReadLn);
    
    Disconnect;
   end;

Ich verstehe immer noch nicht wie diese Komponente funktioniert? Könnte mir das vielleich einer mal erklären?

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


O'rallY - Fr 07.02.03 22:17

Vielleicht sollte der Thread zu VCL verschoben werden...


gala - Do 26.06.03 15:04
Titel: Antwort
Diese Meldung ist, weil du keine InExecute Methode definierst.

So muss es sein:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Server.OnExecute := ServerExecute;//du kannst natürlich anderen Namen geben

{...}

procedure TForm1.ServerExecute(AThread: TIdPeerThread);
begin
  {...}
end;

MfG
gala

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


foxy - Fr 27.06.03 09:31

orally mal ein tipp :)
schau mal in deinem delphiordner unter examples nach dann internet dann chat... da iss genau das was du sucht :wave:


O'rallY - Fr 27.06.03 14:08

gala ( und Foxy), ist ja super nett von dir, dass du diesen Uralt-Thread ausgegraben hast, aber das Problem existiert bei mir schon lange nicht mehr :wink: . Finde die Indys jetzt richtig sympathisch und hab schon seit langem keine Probleme mehr mit irgendeiner Komponente von Indy gehabt.
Trotzdem Danke.


foxy - Fr 27.06.03 14:16

hehe ei dann :D


O'rallY - Fr 27.06.03 14:32

Ah, da klingt der Dialekt ein bisschen durch :mrgreen:. Erinnert mich an früher :wink: .