AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCP: Wie schickt der Server eine Nachricht gezielt?
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCP: Wie schickt der Server eine Nachricht gezielt?

Ein Thema von Stefan Hueg · begonnen am 26. Nov 2006 · letzter Beitrag vom 6. Dez 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#1

Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 26. Nov 2006, 00:52
Ich habe da ein kleines Problem. Und zwar habe ich ein kleines Client-Server Programm gebaut und bin dabei auf folgendes Problem gestoßen.

Der Verbindungsaufbau zwischen Client und Server klappt, sie können sich ereignisbasiert auch Daten hin und her schicken (Server schickt "Hallo", Client schickt "Hallo auch, ich bins Jochen", Server dann "Hallo Jochen"....nur als Beispiel).

Wie kann ich nun folgendes Szenario lösen? Ein Server, 3 Clients. Jeder der Clients verbindet sich zum Server, es folgt ein Handshaking. Der Server möchte nun an einen Client gezielt eine Nachricht senden. Wie kann man diese Nachricht nun gezielt adressieren?
Stefan Hueg
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 26. Nov 2006, 01:10
Mithilfe der Bindings. Jedes Binding repräsentiert einen Client.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 26. Nov 2006, 01:15
Könntest du mir dafür ein konkretes Beispiel geben?
Stefan Hueg
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 2. Dez 2006, 01:29
*PUSH*
Stefan Hueg
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 2. Dez 2006, 10:24
Das Problem ist, dass ein Client nicht merkt, wann ihm etwas geschickt wird. Dieser muss wissen wann und was ankommt. Du könntest zB den Client regelmäßig den Server fragen lassen ob was neues los ist und die Antwort auslesen.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 2. Dez 2006, 11:31
Das heisst, dass wenn der Server ne Nachricht an den Client schickt, keine Prozedur gefeuert wird? Also wird die Nachricht nur in eine Art Puffer geschrieben?

Ich weiss aber immernoch nicht wie das nun genau funktioniert mit dem gezielten Senden.
Stefan Hueg
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 2. Dez 2006, 11:33
Genau.
Das könnte zB so ablaufen (Chatbeispiel)
Client fragt Server "Was neues"?
Server sagt Client: "Jo, 10 messages, achtung, ich schick sie!"
Client liest das aus, merkt: Aha, 10 nachrichten und liest 10 Zeilen ein.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 2. Dez 2006, 19:59
Irgendwie leuchtet mir das noch nicht ganz ein:

Die Indys sind doch nur eine Kapselung von Winsock. Werden Daten empfangen, hat Winsock hat eine Methode namens "DataArrival". Sowas müsste man in den Indies doch irgendwie wiederfinden können, oder geht es wirklich nur über diesen umständlichen Weg?

Konkret geht es um eine Internetcafé-Software und ich bin noch bei der Planung wie ich das Netzwerkinterface bastel. Vielleicht könnt ihr mir da helfen wie ich die Kommunikation gestalten kann, denn darum geht es ja bei meiner hier gestellten Frage.
Stefan Hueg
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 4. Dez 2006, 10:51
Entweder machst du das über Polling (alle x Sekunden/Millisekunden nachfragen), oder jeder Client bekommt eben auch eine
Server-Komponente, und der Server bekommt eine Client-Komponente.

Wenn also dein Client etwas zum Server schickt, verwendet er seine TIdTCPClient-Komponente und der Server empfängt die mit seiner TIdTCPServer-Komponente.

Und wenn der Server was zum Client schicken will, macht er das über seine TIdTCPClient-Komponente und der Client empfängt das mit seiner TIdTCPServer-Komponente.

Ich bin da aber nicht der Spezi, denke mir aber, das das so funktionieren müsste.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#10

Re: Indy TCP: Wie schickt der Server eine Nachricht gezielt?

  Alt 4. Dez 2006, 11:21
Also mit den Indy's kenne ich mich nicht wirklich aus....
Ich benutze eigendlich nur die normalen Socket komponenten von delphi..
und dort habe ich es so gemacht.. das wenn sich ein client anmeldet, sich der server den socket (TCustomWinSocket) und einen wert zum zuordnen merkt..

und wenn der server nun eine geziehlte nachricht verschicken soll, wie z.b. beim privaten chat.. oder ähnlcichem.. dann kann man den record nach der jewailigen zuordnung durchsuchen und dann den dazugehörigen socket benutzen.

wenn dich diese methode interessiert, dann schreib einfach nochmal.. und ich gebe dir einige beispiele

MfG Real Thunder
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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