AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Chat: Server sendet Nachricht an EINEN Client
Thema durchsuchen
Ansicht
Themen-Optionen

Chat: Server sendet Nachricht an EINEN Client

Ein Thema von ramboni · begonnen am 8. Dez 2013 · letzter Beitrag vom 9. Dez 2013
Antwort Antwort
ramboni

Registriert seit: 3. Dez 2012
24 Beiträge
 
Delphi XE Starter
 
#1

Chat: Server sendet Nachricht an EINEN Client

  Alt 8. Dez 2013, 20:00
Hey zusammen,

um es vorweg zu nehmen: Ich bin ü50 und habe mit dem Programmieren angefangen
um meine Birne nicht ausglühen zu lassen, rechnet also nicht mit professionellen Fragestellungen

Ich habe einen Chat geschrieben. Ein Server und X Clients... Funktioniert super.
Ein Client sendet einen Text an den Server, dieser verteilt die Nachricht dann an alle
anderen Clients.... Nun möcht ich den Chat ein wenig ausbauen und einige Funktionen
einbauen.
Gelöst habe ich es mit der ganz normalen in Delphi integrierten Funktion: TClientsSocket,
Indy war mit zu kompliziert


1.
Der Server soll eine Nachricht an einen Client (nicht alle!) senden können.
Vom denken her wollte ich gerade versuchen ein Array mit ip und GetHashCode zu füllen
um dann über Server.Socket.Connections[i] suchen wer den Hash hat... aber irgendwie glaube
ich das es viel viel einfacher geht Darum die Frage hier

Weiß einer wie der Server eine Nachricht an nur einen Client senden kann?

2. Dateien verschicken.
Wie mach ich sowas?
Und wenn ich weiß wie, schick ich die Datei erst zum Server und der schickt sie dann zum Client
oder wie oder wo?


Ich bin zu alt für sowas.....


//Edit

Hat sich erledingt.
Wenn ich eine "Userliste" als Listbox anlege und diese bei Connection mittels:

Listbox1.AddItem(Socket.RemoteAddress,Socket);

befülle > dann gehts...

Was bedeutet das ", Socket"
Also das ich da jetzt die IP drin zu stehen hab, seh ich ja, aber ", Socket" ... sind das Infos
zum Client?


Mit:

(Listbox1.Items.Objects[i] as TCustomWinSocket).SendText('Test');

kann ich dann auch an genau diese Connection senden... aber was das genau bedeutet hab ich
nich nicht herrausbekommen
Kann mir das jemand in einfachen Worten erklären?

Geändert von ramboni ( 8. Dez 2013 um 21:30 Uhr)
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

AW: Chat: Server sendet Nachricht an EINEN Client

  Alt 9. Dez 2013, 08:28
Jeder Listeneintrag hat einen "Titel" (den du in der Listbox siehst) und einen Pointer auf ein optionales Objekt.
Wenn Du den Listeneintrag so erzeugst Listbox1.AddItem(Socket.RemoteAddress,Socket); , dann ist der Titel des Eintrags die IP Adresse des verbundenen Clients und das "optionale Objekt" die Socket Connection zwischen Server und diesem einen Client (vergleichbar mit einer eindeutigen "TCP Session").

Da der "Data" Pointer des Listboxeintrags auf jedes beliebige Objekt zeigen kann, musst Du es mit dem richtigen Typen ansprechen (casten).
Das bedeutet dieser Codeteil:
(Listbox1.Items.Objects[i] as TCustomWinSocket) oder alternativ
TCustomWinSocket(Listbox1.Items.Objects[i])
Mit diesem Befehl sendest Du den Text "Test" über die eindeutige Socket Verbindung "i" an den ausgewählten Client "y".
(Listbox1.Items.Objects[i] as TCustomWinSocket).SendText('Test');

Geändert von jensw_2000 ( 9. Dez 2013 um 08:41 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 08: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