Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy [TCP Server / Client] (https://www.delphipraxis.net/26036-indy-%5Btcp-server-client%5D.html)

NeoLuxembourg 16. Jul 2004 22:02


Indy [TCP Server / Client]
 
[Als erster sorry fur mein schlechtes deutsch ... :oops: ]

Also, ich will mit Delphi en Server / Client programm aufbauen.

- Der client soll sich einloggen (damit kein problem!)
- Der Server soll die Daten aufnehmen und wenn alles klappt hat der user zugriff auf dem server (alles ok bis jetzt)
- Es soll möglisch sein das sich mehere client im server einlogen (.. ok!)

- Der server soll di daten der users (IP, Username, ...) in einem array speichern (!) /!\

Aber...

Nachdem ich die IP der Users hab;

AThread.Connection.Socket.Binding.PeerIP;

Wie kann ich danach wieder auf di connection zugreiffen. d.h .. wenn zb client 1 mit der IP 192.168.0.1 ein text an client 2 192.168.0.2 senden will, wie soll ich das machen?

Ein suche hier (Forum) hat mir au nicht weiter geholfen!

Soll ich auf den server auch ein TCPClient laufen lassen der wenn gebrauch den text vom server ausf den client send (der client muss dann auch ein TCPServer besitzen!)

Mein vorstellung wäre di:

Client schickt CMD zum server über TCPClient ->
Server kriegt di CMD (TCPServer) und gibt si am Programm weiter->
MainProgramm verarbeitet di CMD und sickt das endergebnis am Client über TCPClient->
Der Client erhält das Ergebnis von seinem TCPServer ... usw

Oder geht das auch anders ?
Wenn ich so vergehe entsteht kein problem mit dem TCPClient im server wenn zu viele Client aus einmal ein CMD senden ?

Thx...

alcaeus 16. Jul 2004 22:13

Re: Indy [TCP Server / Client]
 
Der Server erhält mal das Kommando, zusammengesetzt aus Zieladresse und Daten. Diese werden an den Server versendet und dort im OnClientRead-Ereignis ausgelesen. Dort liest der Server die Daten aus, findet das richtige Socket an das gesendet werden soll, und schickst das Socket an diese Daten.
Ich hoffe das war halbwegs verständlich erklärt, andernfalls helfe ich gerne weiter.

Greetz
alcaeus

supermuckl 16. Jul 2004 22:41

Re: Indy [TCP Server / Client]
 
erstmal herzlich willkommen bei DP ;)

hab sowas schonmal realisiert falls du sources haben willst ( is aber nicht gerade einfach zu verstehen weils ziemlich groß und noch nicht fertig ist )

desweiteren hab ich mal jemanden anderst das erklärt wie man die daten für die clients hält ( siehe indy TCP client/server Demo projekt -> da ist es sehr gut realisiert )

und fürs lesen via client kann man threads benutzen oder schleifen wenn es nicht so um die performance / benutzerfreundlichkeit geht.. aber näheres siehe link

http://www.delphipraxis.net/internal...985&highlight=

NeoLuxembourg 17. Jul 2004 00:19

Re: Indy [TCP Server / Client]
 
@alcaeus

Ok, verstanden aber wie soll das ..., findet das richtige Socket an das gesendet werden soll, und schickst das Socket an diese Daten. ... mit dem Indy gemach werden?

@supermuckl

Ja das wäre ne gute Lösung. Ich versucht so bald ich daheim bin ... thx!

PS: Ich versuch mal was über threads zu finden und paste mein source hierher (also, wenn alles funzt)

supermuckl 17. Jul 2004 00:40

Re: Indy [TCP Server / Client]
 
indy server hat den kompletten threading kram komplett integriert
kannst damit direkt alle clients "verwalten" musst nurnoch nen record an jeden client-thread "hängen"

dann kannst nacher über ne liste auf alle clients zugreifen oder bei einem ereignis @ server auf die zugehörige liste zugreifen und client daten verarbeiten ( user / pass vergleichen usw )

das demo ist wie gesagt in den indy kompos mit der strategie hab ichs bei meinem SCS chat system auch gemacht

NeoLuxembourg 17. Jul 2004 16:34

Re: Indy [TCP Server / Client]
 
wo bekomme ich di demo denn her ?

supermuckl 17. Jul 2004 16:57

Re: Indy [TCP Server / Client]
 
auf der nevrona.com seite wo es indy gibt.. da gibt es auch die demos

NeoLuxembourg 17. Jul 2004 17:46

Re: Indy [TCP Server / Client]
 
hmmm .. aber was für ne demo soll ich den dort mir ansehen ? :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 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