AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi [TUdpSockUtil] - Absturz des Programms? Warum?
Thema durchsuchen
Ansicht
Themen-Optionen

[TUdpSockUtil] - Absturz des Programms? Warum?

Ein Thema von xZise · begonnen am 28. Aug 2007 · letzter Beitrag vom 29. Aug 2007
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[TUdpSockUtil] - Absturz des Programms? Warum?

  Alt 28. Aug 2007, 07:49
Hallo DP,
sorry, dass ich wieder nerve
aber
ich habe folgendes Programm:
Delphi-Quellcode:
procedure TfrmServSimu.FormCreate(Sender: TObject);
begin
  udpSocket := TUdpSockUtil.Create(self);
  udpSocket.OnReceive := udpSocketRecieve;
  udpSocket.LocalPort := 2007; // Empfangport
  udpSocket.RemotePort := 7002; // Sendeport
  udpSocket.Open; // Empfänge annehmen
end;

procedure TfrmServSimu.FormDestroy(Sender: TObject);
begin
  udpSocket.Close;
  udpSocket.Free;
end;

procedure TfrmServSimu.udpSocketRecieve(Sender: TObject);
var
  sendIP : in_addr;
  msg : array of Byte;
  killStr : string;
  i : Integer;

  title, text : string;
begin
  SetLength(msg, udpSocket.ReceiveLength);
  udpSocket.ReceiveBuf(msg, Length(msg), sendIP);

  lFunktion.Caption := 'Funktionsnummer: ' + IntToStr(msg[0]);

  case msg[0] of
    0..3 : ;
    4 : begin // Message
      title := '';
      i := REQUEST_HEADER_LENGTH;
      while (i < High(msg)) and (msg[i] <> 0) do
      begin
        title := title + Chr(msg[i]);
        inc(i);
      end;
      text := '';
      inc(i);
      while (i < High(msg)) and (msg[i] <> 0) do
      begin
        text := text + Chr(msg[i]);
        inc(i);
      end;
      mExtra.Lines.Text := 'Titel: "' + title + '"' + #13#10 + 'Text: "' + text + '"' + #13#10 + 'Icon: ' + IntToStr(msg[i + 1]);
    end;
    5 : begin
      SetLength(killStr, Length(msg) - REQUEST_HEADER_LENGTH);
      for i := REQUEST_HEADER_LENGTH to High(msg) do
        killStr[i] := Chr(msg[i]);
      mExtra.Lines.Text := killStr;
    end;
    else begin
      MessageBox(0, PChar('Das Signal über Port 2007 mit den Funktionswert "' + IntToStr(msg[0]) + '" wurde entfangen.' + #13#10 + 'Da das Signal ausserhalb er Funktionswerte liegt wird das Signal ignoriert' + #13#10 + 'Sender-IP: ' + inet_ntoa(sendIP) + #13#10 + 'Dieser Vorfall wird von den Admins behandelt'), PChar('Illegaler Funktionswert'), MB_OK or MB_ICONWARNING);
    end;
  end;
end;
Ich will mit den Programm testen, ob Befehle korrekt übertragen werden.
Aber sobald ich etwas abschicke bekomme ich einen Fehler:
Zitat:
---------------------------
Anwendungsfehler
---------------------------
Exception EAccessViolation in Modul ServSimu.exe bei 00004B58.
Zugriffsverletzung bei Adresse 00404B58 in Modul 'ServSimu.exe'. Schreiben von Adresse 00C15C74.
---------------------------
OK
---------------------------
Ich habe schon debuggt, finde aber nicht heraus, warum er so abstürzt.

Habt ihr vielleicht eine Idee?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#2

Re: [TUdpSockUtil] - Absturz des Programms? Warum?

  Alt 28. Aug 2007, 07:53
an welcher stelle im qc kriegst du die av?
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [TUdpSockUtil] - Absturz des Programms? Warum?

  Alt 28. Aug 2007, 17:59
Nach dem Empfangen, also (bei mir ) Zeile 26.
Irgendwie scheint das ganz seltsam, weil ich dann ganz normal weiter springe (ins else) und dannach im QT von der Komponente...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#4

Re: [TUdpSockUtil] - Absturz des Programms? Warum?

  Alt 28. Aug 2007, 20:00
hm komisch hätte jetzt darauf getippt, dass du die kompo noch nciht erzeugt hättest...
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Narses

Registriert seit: 21. Mär 2006
1 Beiträge
 
#5

Re: [TUdpSockUtil] - Absturz des Programms? Warum?

  Alt 28. Aug 2007, 22:36
Moin!

Mach das mal so:
udpSocket.ReceiveBuf(msg[0], Length(msg), sendIP); cu
Narses
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: [TUdpSockUtil] - Absturz des Programms? Warum?

  Alt 29. Aug 2007, 16:37
Ich werde das mal so testen.
Klingt logisch, weil, wenn ich ein Array mit Filestream abspeichern möchte ja auch das übergeben muss
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  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 15:52 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