Einzelnen Beitrag anzeigen

hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#1

Indy TCP Client Exception

  Alt 30. Apr 2012, 11:10
Hallo allerseits

ich stehe wieder mal wie der Esel am Berg. Ich habe folgende ziemlich einfache Unit:
Code:
unit Client1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  StdCtrls, WinSock, IdCustomTCPServer, IdTCPServer;

type
    TALiz = class(TForm)
    TCPClient : TIdTCPClient;

    function GetLizfromServer(SW: String; Liz: String; PKey: String; IP: String): string;
end;

var ALiz: TALiz;

implementation

{$R *.dfm}

uses ping;

function TALiz.GetLizfromServer(SW: String; Liz: String; PKey: String; IP: String): string;
var Puffer : string;
var VErr  : Boolean;
var QIP   : in_addr;
begin
  if GetIPByName('www.schneider-it-gmbh.dyndns.org',QIP) then
     begin
     TCPClient.Host := inet_ntoa(QIP);
     Result    := '';
     VErr      := False;
     try
       TCPClient.Connect;
       Puffer := SW + '#' + PKey + '#' + Liz + '#' + IP;
       if TCPClient.Connected then
          begin
          TCPClient.GetResponse(100);
          if TCPClient.LastCmdResult.Text.Strings[0] = 'Server ready' then
             begin
             TCPClient.SendCmd(Puffer, 200);
             Puffer := TCPClient.LastCmdResult.Text.Strings[0];
             if copy(Puffer,1,4) <> 'NOGO' then
                Result := Puffer
             else
                begin
                ......
                end;
             end
          else
             Result := 'Verbindungsfehler 3';
          end;
       TCPClient.IOHandler.Close;
       TCPClient.Disconnect;
     except
       Result := 'Verbindungsfehler 1';
     end;
     end
  else
     Result := 'DNS-Fehler!';
end;

end.
Auf dem Form ist bloss ein TIdTCPCLient. Die Unit habe ich elf Applikationen eingebunden und funktioniert einwandfrei. Bei einer weiteren Applikation bekomme ich aber auf dem TCPClient.Host := inet_ntoa(QIP);
konstant eine Access Violation Exception. Und an der IP-Ermittlung liegt es nicht: Auch so etwas führt zum Fehler: TCPClient.Host := '192.168.0.11'.

Hat irgend jemand eine Idee, weshalb das 11 mal funktioniert, resp. was die Ursache sein könnte, weshalb es beim 12. mal nicht funktioniert?

Danke für Eure Hinweise
Heinz Schneider
  Mit Zitat antworten Zitat