Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphianwendungen verbinden (https://www.delphipraxis.net/79736-delphianwendungen-verbinden.html)

ScotsMan 1. Nov 2006 07:42

Re: Delphianwendungen verbinden
 
Hallo, erstmal.

Der Client kann nix vom Server wissen, deshalb geht das so nicht. Der Client weiss aber, ob er zum Server verbunden ist. Die Abfrage muesste also demzufolge

Delphi-Quellcode:
if ClientSocket1.Connect(ed) then
heissen, denke ich.
MfG

robinWie 1. Nov 2006 08:53

Re: Delphianwendungen verbinden
 
Zitat:

ich hab noch eine Frage, wenn ich vom Client aus den Server abfragen ob er aktiv ist?
wenn du mit dem Client eine verbindung startest gibt es einen Fehler, wenn der Server nicht aktiv ist.
Man könnte das ungefähr so lösen:
Delphi-Quellcode:
try
 ClientSocket1.Active := True;
except
 { Ereignis, das eintretten soll, wenn Server nicht aktiv ist }
end;
Wenn du nur wissen willst ob der Server PC läuft, kann man das mit einem Ping herausfinden

Delphi-Quellcode:
function Ping(IP:string; TimeOut:Cardinal):Boolean;
  var hICMP                          : DWORD;
      pierWork                       : PICMP_ECHO_REPLY;
      dwSize                         : DWORD;
      Class1,Class2,Class3,Class4     : String;
      i,j                            : Byte;
begin
  Result:=False;
  j:=1;
  for i:=1 to Length(IP) do begin
    if IP[i]<>'.' then begin
      case j of
        1: Class1:=Class1+IP[i];
        2: Class2:=Class2+IP[i];
        3: Class3:=Class3+IP[i];
        4: Class4:=Class4+IP[i];
      end;
    end else
      Inc(j);
  end;
  hICMP := IcmpCreateFile;
  if hICMP = INVALID_HANDLE_VALUE then exit;
  try
    dwSize  := SizeOf(ICMP_ECHO_REPLY)+8;
    pierWork := AllocMem(dwSize);
    try
      if IcmpSendEcho(hICMP,MAKELONG(MAKEWORD(StrToInt(Class1), StrToInt(Class2)),MAKEWORD(StrToInt(Class3), StrToInt(Class4))),nil,0,nil,pierWork,dwSize,TimeOut) = 0 then
        Result:=False
      else
        Result:=True;
    finally
      FreeMem(pierWork,dwSize);
    end;
  finally
    IcmpCloseHandle(hIcmp);
  end;
end;

juezi 2. Nov 2006 06:00

Re: Delphianwendungen verbinden
 
Hallo Zusammen,

Danke für Eure Hilfe, ich denke ich kann mit den beiden Funktionen mein Problem beheben, ich werde zuerst mit ping testen ob der andere PC überhaupt aktiv ist und dann kann ich sehen ob der Client connected ist.

Vielen Dank

juezi


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Seite 2 von 2     12   

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