AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wie findet man raus, welcher Client den Text gesendet hat?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie findet man raus, welcher Client den Text gesendet hat?

Ein Thema von jungdelphin · begonnen am 29. Jul 2003 · letzter Beitrag vom 30. Jul 2003
Antwort Antwort
jungdelphin

Registriert seit: 29. Jul 2003
10 Beiträge
 
#1

Wie findet man raus, welcher Client den Text gesendet hat?

  Alt 29. Jul 2003, 20:34
Hi!

Hoffe die frage ist nicht zu trivial für dieses Forum.

flipper junior
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie findet man raus, welcher Client den Text gesendet ha

  Alt 29. Jul 2003, 21:00
Mit welchen Komponenten arbeitest Du denn? Du musst Dir angewöhnen, nicht so sehr mit Deinen Informationen zu geizen

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jungdelphin

Registriert seit: 29. Jul 2003
10 Beiträge
 
#3

Re: Wie findet man raus, welcher Client den Text gesendet ha

  Alt 29. Jul 2003, 21:32
Einfach nur TClientSocket und TServerSocket und Delphi 6 [Personal ]
(bin nicht so der große Programmcracker)

Ich möchte für den Chat einfach nur wissen, von welchem client die Nachricht stammt, um den anderen diese auch zu senden, dem sender selbst aber natürlich nicht (ein bissel ökonomie kann auch in Delphi nicht schaden ).
  Mit Zitat antworten Zitat
hircusmutzus
(Gast)

n/a Beiträge
 
#4

Re: Wie findet man raus, welcher Client den Text gesendet ha

  Alt 30. Jul 2003, 20:41
Hi,

ich nehme mal an dass du irgendwie eine Memo-Komponente verwendest, um den Text darzustellen. Wenn der Client auf den "Senden"-Button klickt, sendest du den Text einfach an den Server ohne sie in dein Memo zu schreiben.

Delphi-Quellcode:
procedure TForm1.SendClick(Sender: TObject);
begin
  if connected = true then begin
  { connected ist einfach nur eine Variable um zu gucken, ob der Client mit dem Server verbunden ist }
  ClientSocket1.Socket.SendText(Edit1.Text + ': ' + Edit2.Text);
  {Edit1.Text ist der eingegebene Nick und Edit2.Text der eingegebene Text }
  Edit2.SetFocus;
  end;

  if connected = false then begin
  MessageDlg('Sie müssen erst eine IP-Adresse eingeben und eine Verbindung mit dem Server aufbauen!', mtInformation, [mbok], 0);
  Edit3.SetFocus;
  end;
end;
Der Server macht dan folgendes mit den empfangenen Nachrichten:

Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var startwert, connections: integer;
    text: String;
begin
  startwert := 0;
  { Diese Variable ist einfach für die while-Schleife }
  connections := ServerSocket1.Socket.ActiveConnections;
  { Zählt die verbundenen Clients, auch für die while-Schleife }
  text := Socket.ReceiveText;
  { Hier wird einfach der empfangene Text in der Variable gespeichert }
  Memo1.Lines.Add(text);
  { Der Text wird beim Server ins Memo kopiert }
  while startwert < connections do
    begin
      ServerSocket1.Socket.Connections[startwert].SendText(text);
      inc(startwert);
    end;
  { Das ist das wichtigste! }
end;
Der Client widerum macht mit empfangenem Text folgendes:

Delphi-Quellcode:
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.ReceiveText);
end;
Damit bekommt jeder den Text einmal und niemand doppelt! Ich hoffe das hat dir etwas geholfen!

MfG Matthias Volland
  Mit Zitat antworten Zitat
jungdelphin

Registriert seit: 29. Jul 2003
10 Beiträge
 
#5

Re: Wie findet man raus, welcher Client den Text gesendet ha

  Alt 30. Jul 2003, 21:01
Hi!

Danke für die Hilfe. Ich habe es mittlerweile anders gelöst:
Der Server merkt sich die SocketHandels und die Clientnamen als records
in einer list und über die Handles kann man ja die clients idetifizieren. Das mit den Handles war wohl was ich gesucht habe.

Trotzdem danke.
  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 06:46 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