AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TClientSocket Eigenschaften in eigener Unit
Thema durchsuchen
Ansicht
Themen-Optionen

TClientSocket Eigenschaften in eigener Unit

Ein Thema von Piro · begonnen am 12. Aug 2008 · letzter Beitrag vom 12. Aug 2008
 
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

TClientSocket Eigenschaften in eigener Unit

  Alt 12. Aug 2008, 07:58
Moin,

ich bräuchte mal eure Hilfe. Ich kenne mich nicht so doll damit aus.

Delphi-Quellcode:
unit uHostSocketAlive;

interface

function IsHostSocketAlive(Hostname: String; Port : Integer = 29979) : Boolean;

implementation

uses
  Windows,
  Forms,
  ScktComp;

var
 Client : TClientSocket;
 IsAlive : Boolean;
 Finish : Boolean;

procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  IsAlive := TRUE;
  Finish := TRUE;
end;

procedure ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
 if ErrorCode > 0 then
 begin
   Client.Close;
   IsAlive := FALSE;
   ErrorCode := 0;
 end;
 Finish := TRUE;
end;

function IsHostSocketAlive(Hostname: String; Port : Integer = 29979) : Boolean;
begin
 IsAlive := FALSE;
 Finish := FALSE;
 Result := FALSE;

 //Initialisierung des Objekts (ältere Delphi-Versionen)
 Client := TClientSocket.Create(Client);
 Client.OnConnect := ClientConnect;
 Client.OnError := ClientError;

 try
   Client.Port := Port;
   // Remote Computer mit dem die Verbindung aufgebaut werden soll
   Client.Host:= Hostname;
   Client.Open;
 except
   //Im Fehlerfall wieder freigeben (ältere Versionen)
   Client.Free;
 end;

 while Finish = FALSE do
 begin
   Application.ProcessMessages;
 end;

 // Result setzen
 Result := IsAlive;
end;

end.
Bei der Zuweisung von Client.OnConnect und Client.OnError kommt es zum Fehler. Denn ich nicht lösen kann.

Meldermeldung:
Zitat:
E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Funktioniert das überhaupt sowie ich es vorhabe? Bzw. was muss ich ändern, dass es klappt? Wollte eigentlich alles in die Funktion "IsHostSocketAlive" packen aber dazu fehlt mir das Wissen.

Als Ergebnis möchte ich gerne aus einer anderen Unit "IsHostSocketAlive" aufrufen und der Rückgabewert ist TRUE wenn die Verbindung zustande gekommen ist oder FALSE wenn es nicht geklappt hat.

Vielen Dank im voraus. Gruß, Sven
  Mit Zitat antworten Zitat
 


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 21:13 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