Sendnetworkdata + ByteArray

Für allgemeine Fragen zur Programmierung mit PureBasic.
Vater
Beiträge: 10
Registriert: 25.01.2005 17:29

Sendnetworkdata + ByteArray

Beitrag 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
Benutzeravatar
Buggymonkey
Beiträge: 47
Registriert: 02.09.2004 19:36
Wohnort: Löhne
Kontaktdaten:

Beitrag von Buggymonkey »

hmmm.......

zu einem Netzwerk gehören mind. 2, poste den code vom Server auch mal.

MFG Nils
wenn wer rechtschreibfehler findet, kann er sie behalten, :)

Ich würde gern die Welt verändern,
doch Gott gibt mir den Quellcode nicht!

http://www.house-of-chat.de umbedingt mal vorbei schaun ^^
Vater
Beiträge: 10
Registriert: 25.01.2005 17:29

Bytearray

Beitrag 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.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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).
Vater
Beiträge: 10
Registriert: 25.01.2005 17:29

Sendnetworkdata + ByteArray

Beitrag von Vater »

Das scheint zu funktionieren ... dann bis zum nächsten Problem :D
andi256
Beiträge: 100
Registriert: 06.11.2004 11:23
Computerausstattung: PB 5.30 (x64) Win7
Wohnort: Österreich

Beitrag von andi256 »

eventuell hilt das

Code: Alles auswählen

Len(PeekS(*buffer)) 
andi256
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Sendnetworkdata + ByteArray

Beitrag 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 ;))
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Vater
Beiträge: 10
Registriert: 25.01.2005 17:29

AllocateMemory

Beitrag von Vater »

Eigentlich stelle ich nur mit allocatememory nur eine Speicheradresse für das Bytearray zur verfügung ... oder liege ich da etwa falsch?
Benutzeravatar
ChaOsKid
Beiträge: 66
Registriert: 29.08.2004 15:07
Wohnort: Oktoberfest

Beitrag von ChaOsKid »

hi Vater,

kann man so ein "Magic Packet" überhaupt per TCP verschicken ?
weil ich kenne das nur per UPD broadcast....

mfG
Tobi
Vater
Beiträge: 10
Registriert: 25.01.2005 17:29

Magic Packet

Beitrag 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
Antworten