![]() |
Re: Client ausfindig machen
Sorry ich peil das nicht :wall: :wall: :wall: :wall:
|
Re: Client ausfindig machen
Hallo Gerrit,
also, jedes Socket das sich zu deinem Server verbindet hat ein eindeutiges Handle. Sobald sich jemand verbindet, fuegst du dieses Handle einer Liste hinzu. Im OnClientRead verwendest du dann Socket.SocketHandle um das Handle des sendenden Sockets herauszufinden, und gehst durch das Array um die interne ID des Sockets zu finden. Diese zeigst du dann an. Greetz alcaeus |
Re: Client ausfindig machen
Delphi-Quellcode:
Mag dumm aussehen aber mal schaun was ihr so sagt ... unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp; type TForm1 = class(TForm) ServerSocket1: TServerSocket; procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Clienthwnd: Array[0..1] of Hwnd; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.Active := True; end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin If Socket.Handle = ClientHWND[0] then ServerSocket1.Socket.Connections[0].SendText('hallo') else ServerSocket1.Socket.Connections[1].SendText('hallo'); end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin If ClientHWND[0] <> 0 then begin ClientHWND[0] := Socket.Handle; exit; end else if ClientHWND[1] <> 0 then Socket.Disconnect(2) else ClientHWND[1] := Socket.Handle; end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin If socket.Handle = ClientHWND[0] then begin ClientHWND[0] := ClientHWND[1]; ClientHWND[1] := 0; end else if socket.Handle = ClientHWND[1] then ClientHWND[1] := 0; end; end. Es dürfen maximal 2 Clienten verbinden. Zitat:
|
Re: Client ausfindig machen
Die Position von Clienthwnd ist evtl. nicht optimal (globale Variablen sind umstritten, Clienthwnd könnte genauso gut in TForm1 stehen)
Zitat:
|
Re: Client ausfindig machen
Und deswegen schreibst du mir eine PM ob ich denn wirklich so blöd bin und das nicht verstehe?
|
Re: Client ausfindig machen
Phistev, Gerrit,
bitte klaert eure kleinen Differenzen nicht hier, sondern per PN oder sonstwo. Wenn jemand etwas nicht kann, ist dies keinen Grund, ihn als "bloed" darzustellen. Genau deshalb gibt es das Forum. Gerrit, such mal in der DP nach ![]() Falls du nur 2 Clients zulassen willst, kannst du auch mit ![]() Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 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