Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WinSockets: Alle Verbindungen anzeigen (https://www.delphipraxis.net/99779-winsockets-alle-verbindungen-anzeigen.html)

Xzeer 17. Sep 2007 18:45


WinSockets: Alle Verbindungen anzeigen
 
Hallo,

Ich programmiere gerade an einem kleinen Lan-Chat Parogramm und bin auch schon soweit, dass das Grundlegende funktionoiert. Aber ich möchte am Server eine Funktion einbauen, dass er anzeigt, welche Clients momentan angemeldet sind.

Ich habe mir da mal folgendes überlegt:

Delphi-Quellcode:
procedure tform1.button1click(sender: tobject);
   var i: integer;
begin
   for i := 0 to server.socket.activconnections - 1 do
      begin
      memo1.text:=server.socket.connections[i];
      end;
end;
Allerding bekomme ich den Fehler, dass "string" und TCustomWinSocket" inkompatible Typen sind.

Wie könnte ich mein Problem noch angehen???

sirius 17. Sep 2007 18:51

Re: WinSockets: Alle Verbindungen anzeigen
 
Was willst du denn anzeigen lassen?
am besten ist, du gibst hinter ...connnections[i] noch einen Punkt ein und wartest was Delphi dir so anbietet. Zum Beispiel könntest du "RemoteAddress" nehmen oder RemoteHost. Oder du hast etwas im Feld Data hinterlegt.

Xzeer 17. Sep 2007 18:54

Re: WinSockets: Alle Verbindungen anzeigen
 
Zitat:

Zitat von sirius
Was willst du denn anzeigen lassen?

Ich möchte einfach nur anzeigen lassen, welche Clients momentan am Server eingeloggt sind, also die nachrichten empfangen und senden können.

oki 17. Sep 2007 18:55

Re: WinSockets: Alle Verbindungen anzeigen
 
Hi,

so wie du angefangen hast ist das schon der richtige Weg. Du bist nur auf halber Strecke stehen geblieben. Nach dem du die einzelne Client-Socket hast, mußt du dir jetzt überlegen, was du visualisieren willst.

Ein Bsp. für die IP des Clients:
Delphi-Quellcode:
procedure tform1.button1click(sender: tobject);
   var i: integer;
begin
   for i := 0 to server.socket.activconnections - 1 do
      begin
      memo1.text:=server.socket.connections[i].RemoteAddress;
      end;
end;
Gruß oki

Muetze1 17. Sep 2007 19:01

Re: WinSockets: Alle Verbindungen anzeigen
 
Zitat:

Zitat von oki
Ein Bsp. für die IP des Clients:
Delphi-Quellcode:
procedure tform1.button1click(sender: tobject);
   var i: integer;
begin
   for i := 0 to server.socket.activconnections - 1 do
      begin
      memo1.text:=server.socket.connections[i].RemoteAddress;
      end;
end;

Wozu denn die Schleife wenn man eh nur den letzten Client sieht?

Xzeer 17. Sep 2007 19:05

Re: WinSockets: Alle Verbindungen anzeigen
 
Hallo

Hab jezt raus und genauso gemacht wie "oki" klapp super und irgendwo müsste ich auch noch eine funktion haben um den entsprechenden Computernamen herauszufinden :wink:

Danke für die Hilfe...

oki 17. Sep 2007 19:21

Re: WinSockets: Alle Verbindungen anzeigen
 
Zitat:

Zitat von Muetze1
Wozu denn die Schleife wenn man eh nur den letzten Client sieht?

Ähm, wie jetzt? :gruebel:


Zitat:

Zitat von Leos-Studio
... irgendwo müsste ich auch noch eine funktion haben um den entsprechenden Computernamen herauszufinden

da seh ich schwarz.

Gruß oki

Innos 17. Sep 2007 22:31

Re: WinSockets: Alle Verbindungen anzeigen
 
Vielleicht könnte man eine funktion in den client stecken, die den PC namen herausfindet und dann dem server sendet

keine Ahnung ob es sowas gibt aba man müsste immerhin nicht vom server iwelche anstrengungen machen
wollt auch mal helfen :mrgreen:

Muetze1 17. Sep 2007 23:43

Re: WinSockets: Alle Verbindungen anzeigen
 
Delphi-Quellcode:
procedure tform1.button1click(sender: tobject);
   var i: integer;
begin
   for i := 0 to server.socket.activconnections - 1 do
      memo1.Lines.Add(format(server.socket.connections[i].RemoteHost + ' ('+Server.socket.connections[i].RemoteAddress+')');
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz