Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   UDP vom Formular und aus der DLL... (https://www.delphipraxis.net/186929-udp-vom-formular-und-aus-der-dll.html)

calibra301 13. Okt 2015 12:48

UDP vom Formular und aus der DLL...
 
Hi,

stehe mal wieder wie der Ochs vorm Berge wie man so schön sagt.

Fall1: Delphi 6 Formularanwendung mit einem IDUDPClient drauf.
Gefüllt wird eine lokale Variable und dann gesendet.
Zielport im Objektinspektor eingetragen, sonst alles so gelassen wie es war.

Buffer: array[0..529] of char;
...füllen...
udp.SendBuffer(Buffer, sizeof(Buffer));

Löppt..wunnebar.

Dann soll das ganze in eine DLL, die Daten sollen von woanders kommen.

Delphi-Quellcode:
Global:
UDP: TIDUDPCLient;

Init wird aufgerufen wenn UDP=Nil

Procedure Init_UDP;
Begin
 UDP:=TIDUDPCLient.Create(nil);
 udp.Active:=true;
 udp.BufferSize:=8192;
 udp.ReceiveTimeout:= -2;
 udp.BroadcastEnabled:=false;
end;

in der Empfangsroutine wo auch die Daten vom Sender ankommen
dann :

 udp.Host:=DestIp;
 udp.Port := 6454;
 udp.BroadcastEnabled:=false;
 udp.SendBuffer(Buffer, Length);

In DestIP steht das gesendete '127.0.0.1', der Port ist richtig und die Daten sehen
auch wunnebar aus. Aber das Programm was den Kram empfängt tut nix !
Screenshots vom "OnMouseOver" des Buffers zeigen mir exakt das gleiche..

Gruss
Calli

calibra301 14. Okt 2015 06:03

AW: UDP vom Formular und aus der DLL...
 
Hi,

leider noch nicht weiter, es wird sogar noch "schlimmer"...
Bin mit der FUNKTIONIERENDEN Formularanwendung vom D6 zum XE8 umgezogen

Aufgabe wie gehabt das Array of Char per UDP zu versenden.

Versuche 1:
Da der aktuelle UDPClient ja nur TIDBytes mag eine Variable vom Typ TIDBytes erzeugt,
mit move(Origina,neu, Laenge ) kopiert und mit udp.sendbuffer('127.0.0.1',Zielport,TIDBytes) versucht zu versenden
-> Zielprogramm rührt sich nicht.

Versuch 2:
Variable Typ String erzeugt und auf Laenge gesetzt, wieder mit Move alles umkopiert.
Syntax sollte nun udp.Send(Variable) sein.
Beim Versuch mit udp.host:='127.0.0.1' anzugeben gibt's ne Zugriffsverletzung...

Stehe hier absolut aufm Schlauch...

Wie zum Geier versendet man mit XE einen Array of Char ? :pale:

Gruss
Calli

baumina 14. Okt 2015 06:09

AW: UDP vom Formular und aus der DLL...
 
AnsiChar
AnsiString
Array of AnsiChar


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 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