AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unit in Klasse übertragen -> Access Violation
Thema durchsuchen
Ansicht
Themen-Optionen

Unit in Klasse übertragen -> Access Violation

Ein Thema von CorVu5 · begonnen am 6. Jun 2010 · letzter Beitrag vom 11. Jun 2010
 
CorVu5

Registriert seit: 31. Dez 2007
26 Beiträge
 
Delphi 7 Professional
 
#1

Unit in Klasse übertragen -> Access Violation

  Alt 6. Jun 2010, 22:04
Delphi-Version: 2005
Hallo Leute,
Ich stieß in einem russischen Forum auf eine Unit, die einen SOCKS5-Server erstellen soll.
Diese Unit funktioniert auch gut. (soweit ich das testen konnte)

Originalunit: http://nopaste.info/1b154eaa8c.html

Für meine Zwecke ist diese Methode aber eher ungeeignet, glücklicherweise fand ich auf der selben Seite eine Umarbeitung der Unit zur Klasse. (Siehe Anhang)


Unglücklicherweise schmeißt diese mir beim Aufruf von FOnClientConnected eine AV aus.
Kommentiere ich FOnClientConnected aus, kommt zwar keine AV und wird der Socket auch erstellt, die anderen Events werden jedoch nie aufgerufen und der Server reagiert nicht auf SOCKS-Anfragen.

Ich bin leider alles andere als ein Experte in OOP und würde hier nun gerne nachfragen, was mein Fehler sein könnte.
Mein Beispielcode sieht so aus:
Delphi-Quellcode:
type TProxyMethodDispatcher = class(TObject)
    public
      procedure ClientConnected(client:TSocket);
      procedure ClientDataAvailable(client:TSocket; data:pchar; len:integer);
      procedure ClientDisconnected();
end;

procedure TProxyMethodDispatcher.ClientConnected(client:TSocket);
begin
  MessageBoxA(0,pchar('PROXY Connected'),'ff',0);
end;
procedure TProxyMethodDispatcher.ClientDataAvailable(client:TSocket; data:pchar; len:integer);
begin
  MessageBoxA(0,pchar('PROXY ' + string(data)),'ff',0);
end;
procedure TProxyMethodDispatcher.ClientDisconnected();
begin
  MessageBoxA(0,pchar('PROXY DisConnected'),'ff',0);
end;
var
  vproxysock : TSocks5Proxy;
  vproxymethoddispatcher : TProxyMethodDispatcher;
begin

  vproxysock := TSocks5Proxy.Create(nil);
  vproxysock.OnClientConnected := vProxyMethodDispatcher.ClientConnected;
  vproxysock.OnClientDisConnected := vProxyMethodDispatcher.ClientDisConnected;
  vproxysock.OnClientDataAvailable := vProxyMethodDispatcher.ClientDataAvailable;
  //SOCKS5 SOCKET

  vproxysock.Port := 8080;
  vproxysock.UseAuth := False;
  vproxysock.ManualResponse := True;
  vproxysock.Open;
end;
Danke im Voraus
Angehängte Dateien
Dateityp: pas Socks5Proxy.pas (13,7 KB, 3x aufgerufen)
Das Leben ist wie ein Strand...und dann stirbt man.
  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 05:48 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