AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idTCPClient EAccessViolation beim Verlassen der Prozedur
Thema durchsuchen
Ansicht
Themen-Optionen

idTCPClient EAccessViolation beim Verlassen der Prozedur

Ein Thema von Piethan · begonnen am 11. Aug 2010
Antwort Antwort
Piethan

Registriert seit: 2. Jun 2008
Ort: Köln
43 Beiträge
 
Delphi XE Architect
 
#1

idTCPClient EAccessViolation beim Verlassen der Prozedur

  Alt 11. Aug 2010, 10:13
Morgen Zusammen,

ich möchte eine idTCPServer -idTCPClient Umgebung entwickeln. Diese soll Verschlüsselt sein und
der Transfer soll komprimiert werden. Nun habe ich folgendes Problem, der Verbinungsaufbau zum Server
funktioniert seltsamerweise erst beim zweiten Verbindungsversuch. Beim ersten Versuch gibt immer den Fehler:

Code:
EIdOSSLConnectError mit Meldung 'Error connecting with SSL.
EOF was observed that violates the protocol'
Bei der zweiten Verbindung erhalte ich beim Verlassen der Prozedur noch eine EAccessViolation, welche ich mit
dem Debugger nicht ausmachen kann, weil die Prozedur ja schon beendet ist. Jedoch steht an in der CPU
Ansicht:
Code:
757DB727 C9               leave
Kann einer von Euch erkennen wo mein Fehler liegt, oder wo ich suchen sollte?

Danke und Gruß
Dirk

Delphi-Quellcode:
// Aus dem Formular des Clienten entnommen

object IdTCPClient1: TIdTCPClient
    Intercept = IdCompressionIntercept1
    IOHandler = IdSSLIOHandlerSocketOpenSSL1
    ConnectTimeout = 360000
    Host = '127.0.0.1'
    IPVersion = Id_IPv4
    Port = 211
    ReadTimeout = -1
    Left = 384
    Top = 40
  end
  object IdCompressionIntercept1: TIdCompressionIntercept
    CompressionLevel = 0
    Left = 480
    Top = 192
  end
  object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
    Destination = '127.0.0.1'
    Host = '127.0.0.1'
    Intercept = IdCompressionIntercept1
    MaxLineAction = maException
    Port = 211
    DefaultPort = 211
    SSLOptions.Method = sslvSSLv23
    SSLOptions.SSLVersions = [sslvSSLv2, sslvSSLv3, sslvTLSv1]
    SSLOptions.Mode = sslmUnassigned
    SSLOptions.VerifyMode = []
    SSLOptions.VerifyDepth = 0
    Left = 464
    Top = 80
  end
  object LbMD51: TLbMD5
    Left = 400
    Top = 152
  end
Delphi-Quellcode:
// Die benötigten Records, welche ich zum Austausch der Userdaten benötige

unit records;

interface
uses classes;
type ttksuser = record
    username : string[30];
    passhash : string[100];
end;

type tuserreq = record
     ID: Integer;
     fullname : string[50];
     firstname: string[50];
     midlename: string[50];
     checked : integer;
     cert : string;
end;

implementation

end.




Delphi-Quellcode:
// Procedure für den Verbindungsaufbau
procedure TForm8.Button1Click(Sender: TObject);
var
IDMD5:TIdHashMessageDigest5;
aactuser: ttksuser;
arequser: tuserreq;
abuf : tidBytes;
asendstream : tmemorystream;
begin
 try
  IDMD5:= TIdHashMessageDigest5.create;
  IdTCPClient1.Connect;
  aactuser.username:='Dirk Piethan';
  aactuser.passhash:=LowerCase(IDMD5.HashStringAsHex('TestUser'));
  SetLength(aBuf, 0);
  abuf := RawToBytes(aactuser, SizeOf(aactuser));
  IdTCPClient1.IOHandler.Write(abuf);
  SetLength(aBuf, 0);
  IdTCPClient1.IOHandler.ReadBytes(aBuf, Sizeof(arequser), false);
  BytesToRaw(aBuf, arequser, Sizeof(arequser));
  if arequser.checked = -1 then showmessage('Keinen Benutzer angegeben');
  if arequser.checked = -2 then showmessage('Keine Password angegeben');
  if arequser.checked = -200 then showmessage('Loogin OK');
  IDMD5.Free;
  SetLength(aBuf, 0);
 except
  showmessage('Verbindung fehlgeschlagen');
  IDMD5.Free;
  SetLength(aBuf, 0);
end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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:28 Uhr.
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