Seite 1 von 2
Sendnetworkdata + ByteArray
Verfasst: 27.01.2005 11:43
von Vater
Hallo NG,
ich versuche über Sendnetworkdata ein ByteArray zu versenden, bekomme aber immer die Fehlermeldung das ein String als Übergabeparameter erwartet wird ...
Code: Alles auswählen
*Buffer = AllocateMemory(100)
*Buffer = magicPacketData() ;Byte Array Ubound(100)
If InitNetwork()
lngClient.l
lngClient = OpenNetworkConnection(strAdress, 80)
If lngClient
SendNetworkData(lngClient, *Buffer, Len(*Buffer))
EndIf
EndIf
FreeMemory(*Buffer)
Danke für die Hilfe
Verfasst: 27.01.2005 12:16
von Buggymonkey
hmmm.......
zu einem Netzwerk gehören mind. 2, poste den code vom Server auch mal.
MFG Nils
Bytearray
Verfasst: 27.01.2005 12:34
von Vater
Der Code sollte ein Magic Packet an einen Rechner schicken der Wake On LAN über das BIOS enabled hat, dieses Magic Packet startet den Rechner, das Magic Packet ist nichts anderes als ein Bytearray mit Ubound 100.
Verfasst: 27.01.2005 12:42
von Zaphod
das liegt daran, dass du Len() benutzt, dass die länge eines strings zurückgeben soll. du kannst ja mal SizeOf() probieren, ansonsten mußt du die länge deines buffers selbst berechnen oder mit einem konstanten wert arbeiten (100).
Sendnetworkdata + ByteArray
Verfasst: 27.01.2005 12:48
von Vater
Das scheint zu funktionieren ... dann bis zum nächsten Problem

Verfasst: 27.01.2005 12:51
von andi256
eventuell hilt das
andi256
Re: Sendnetworkdata + ByteArray
Verfasst: 27.01.2005 12:52
von Danilo
Vater hat geschrieben:Code: Alles auswählen
*Buffer = AllocateMemory(100)
*Buffer = magicPacketData() ;Byte Array Ubound(100)
Das sieht aber auch "gefährlich" aus, 2 mal hintereinander
den *Buffer zuweisen.
Wenn magicPacketData() den globalen Zeiger *Buffer benutzt,
dann ist die 2. Zuweisung nicht nötig. Ist das nicht der Fall, ist
es ein Programmierfehler.
Aus Gründen der Lesbarkeit (auch für Andere) sollte man das
besser nicht machen - gerade um Fehler zu vermeiden.
(Nur ein Hinweis am Rande, da mir das sofort ins Auge sprang

)
AllocateMemory
Verfasst: 27.01.2005 13:57
von Vater
Eigentlich stelle ich nur mit allocatememory nur eine Speicheradresse für das Bytearray zur verfügung ... oder liege ich da etwa falsch?
Verfasst: 27.01.2005 14:04
von ChaOsKid
hi Vater,
kann man so ein "Magic Packet" überhaupt per TCP verschicken ?
weil ich kenne das nur per UPD broadcast....
mfG
Tobi
Magic Packet
Verfasst: 27.01.2005 14:35
von Vater
Na leider geht das anscheinend nicht

, ich probiers jetzt über die UDP Lib die ich von der purearea.net Seite hab, was mich jetzt irritiert ist die Portadresse die diese Lib verlangt ... keine Ahnung auf welchen Port ich das Magic Packet schicken muß und noch ein Problem hab ich wie bekomm ich unter Purebasic von einem Hex Wert einen Numeric Wert
Unter VB6 gings so:
Val("&HD7") ergab 215. Wenn ich das unter PB mach hab ich keine Chance ...

Irgendwelche Ideen