Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy Kommunikation (https://www.delphipraxis.net/4611-indy-kommunikation.html)

CalganX 6. Mai 2003 15:16


Indy Kommunikation
 
Hi,
also irgendwas mache ich falsch. Ich versuche gerade das Grundgerüst eines Chatprogrammes (einfaches TCP/IP) zu basteln. Ich benutze die Indys 9.0.
Das ganze läuft derzeit auf einem Rechner, der sich selbst Nachrichten schreiben soll. Connecten kann er auch.
Nun ist aber das Problem, dass ich im Moment keine Idee habe, wie ich Strings versenden und empfangen kann. Hat da jemand ein wenig Source ("Ein bisschen Source, bitte...")?

Wäre euch dankbar,
Chris

Sharky 6. Mai 2003 15:33

Re: Indy Kommunikation
 
Hai Chris,

Souce habe ich jetzt leider keine. Aber schaue dir doch einfach mal die Procedure Write des Indy TCP-Clients an.

CalganX 6. Mai 2003 15:37

Danke... Das wird es vermutlich sein. Und wie empfange ich den String am Server?

Kann im Moment leider nichts ausprobieren, da ich im Moment nix installiert habe (Indys wollen nicht). Werde das aber, sobald es funktioniert, mal testen...

Chris

sakura 6. Mai 2003 15:42

Schau Dir mal den Source zu meinem Demo Programm an. Das sollte Dir helfen.

http://www.delphipraxis.net/viewtopic.php?t=4440

Wenn noch Fragen offen sind, dann helfe ich gerne weiter ;-)

...:cat:...

CalganX 6. Mai 2003 15:46

Werde ich machen, sobald meine Indys laufen... ;)

Chris

CalganX 6. Mai 2003 16:35

Das was du da vom Programm verlangst ist heftig!!! Woher soll ich mal eben die LMD-Tools nehmen??? ;) Schon klar. Kenne die Adresse...
Aber es kommt ja auf die innneren ... ähm ... die Indy-Kompos an... :mrgreen:

Chris

CalganX 6. Mai 2003 16:43

Hi sakura,
also ich habe mir das mal angesehen... An sich ist das ein sehr schönes Tool, aber irgendwie hilft es mir nicht wirklich.
Ich verliere da ein wenig die Übersicht. Ich muss sagen, dass mir ein Tipp reicht, der mir sagt, wie ich sende (hat sich ja bereits erledigt) und wo und wie ich die gesendeten strings im Server wieder auffange und ausgebe...

Chris

MadMason 6. Mai 2003 17:36

warum willst du unbedingt die indy's nehmen?

nimm clientsocket und serversocket.

da kannst du zum senden einfach SendString nehmen, und zum empfangen gibts ein schönes onreceive ereignis.

CalganX 6. Mai 2003 17:42

Würde ich auch liebend gerne, aber leider werde ich ein Instant Messenger mit einem Kollegen programmieren und wir werden diesen auf einem Schulrechner programmieren. Auf diesem ist aber nur die Personal-Version drauf. Und in der Personal ist Client und ServerSocket nicht drin (soweit ich weiß). Außerdem sind die Indys an sich deutlich besser. Besonders wegen Sachen wie AntiFreeze. Des Weiteren sind diese Sachen einfach, aber leider etwas komisch... Keine Ahnung, wie ich das sagen soll... ;)

Chris

sakura 6. Mai 2003 21:16

Zitat:

Zitat von MadMason
warum willst du unbedingt die indy's nehmen?
nimm clientsocket und serversocket.

Warum, eigentlich ganz einfach. Sogar Borland empfiehlt es ;-) TClientSocket und TServerSocket werden, offiziell zumindest, nicht mehr weiterentwickelt, da die Indy-Komponenten diese durch besser ersetzen.

@Chakotay: Morgen werde ich das noch einmal in Ruhe durchgehen und Dir die entsprechenden Tipps geben. Sorry, ich bin einfach zu fertig heute Abend :?

...:cat:...

CalganX 7. Mai 2003 13:24

Hi sakura,
genau das wollte ich eigentlich gesagt haben... ;)
Schon mal danke im Vorraus...

Chris

Sharky 7. Mai 2003 13:44

Hai Chris,

die TIdTCPServer Kompo hat ein Event mit dem Namen: OnExecute. Dort bekommst Du AThread vom Typ TIdPeerThread.


Und jetzt.... achtung......es geht los....

Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
 msg : String;

begin
 msg := aThread.Connection.ReadLn;
end;
P.S.: Bei den Demos für die Indys ist auch ein Chat dabei.

CalganX 7. Mai 2003 13:52

Hi,
aha... Danke. Tja, habe mir doch gedacht, dass es so einfach ist... ;)
Werde das gleich mal ausprobieren. Leider habe ich die Chat-Demo nirgends gefunden, aber werde mir gleich die Demos zu Indy 9 holen und da noch mal gucken...

Chris

Spoon 7. Mai 2003 18:17

und wie macht man genau sowas:
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
msg : String;

begin
msg := aThread.Connection.ReadLn;
end;
mit dem TIdTCPClient ?

Thx Spoon

CalganX 7. Mai 2003 18:51

Du musst mit dem Client einfach eine Verbindung herstellen und einem aktiven Server mit
Delphi-Quellcode:
IdTCPClient1.WriteLn('Dein String' + #$A); // #$A ist das, was bei readln vom Server als erster Parameter kommt. Standardmäßig eben #$A
eine Nacricht zu kommen lassen....

Chris

Spoon 8. Mai 2003 13:56

daten senden kann ich, aber wie empfange ich per Client ??
Da fehlt mir nämlich genau dieses OnExecute Event des Server :(

Thx Spoon

CalganX 8. Mai 2003 13:58

Öhm... Das kann aber irgendwie nicht sein... :?
Welche Version der Indys hast du denn? Am besten ist immer die neuste zu haben. Lad dir einfach von dieser Website die aktuelle Version 9.0.11 herunter... Geht sogar mit ISDN recht schnell...

Chris

Sharky 8. Mai 2003 14:05

Zitat:

Zitat von Spoon
daten senden kann ich, aber wie empfange ich per Client ??
Thx Spoon

Nun ja, ein Client soll ja eigentlich auch nichts empfangen sondern entwas senden.

Mat 11. Jun 2003 04:08

jeder rechner ist einfach server und client gleichzeitig


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 Uhr.

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