UDP Paket senden

Anfängerfragen zum Programmieren mit PureBasic.
svenulm31
Beiträge: 7
Registriert: 07.01.2012 11:00
Computerausstattung: min. 5 Stück
Wohnort: zuhause
Kontaktdaten:

UDP Paket senden

Beitrag von svenulm31 »

Hallo zusammen,
ich möchte über UDP 5 Byte Nullterminiert senden. Mein Problem, es geht nicht :mrgreen:

Code: Alles auswählen

Define bytes, *Adapter_Daten = AllocateMemory(5)

Adapter_frame.a      =$00
Adapter_Adresse.a    =$DD
Adapter_Daten_high.a =$58
Adapter_Daten_Low.a  =$4D

     PokeA(*Adapter_Daten,Adapter_frame)        ;start 00 end 00
     PokeA(*Adapter_Daten,Adapter_Adresse)      ;00DD584D00 RESET dec221
     PokeA(*Adapter_Daten,Adapter_Daten_high)   ;dec88
     PokeA(*Adapter_Daten,Adapter_Daten_Low)    ;dec77
     PokeA(*Adapter_Daten,Adapter_frame)        ;start 00 end 00
     
If InitNetwork() = 0
  End
EndIf
Port = 5000
Verbindung = OpenNetworkConnection("192.168.178.24", Port, #PB_Network_UDP)

If Verbindung
     SendNetworkData(Verbindung , *Adapter_Daten ,5)  
  CloseNetworkConnection(Verbindung)
EndIf
  
End
Adapter_Daten sollte 5 Byte groß sein, aber wie bringe ich Byte 2 bis Byte 5 an die richtige stelle.
Also raus kommen da oben bis jetzt nur 00 00 00 00 00

Danke schon mal Gruß Sven
Zuletzt geändert von svenulm31 am 15.07.2017 17:26, insgesamt 1-mal geändert.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: UDP Paket senden

Beitrag von Mijikai »

Code: Alles auswählen

     PokeA(*Adapter_Daten,Adapter_frame)        ;start 00 end 00
     PokeA(*Adapter_Daten,Adapter_Adresse)      ;00DD584D00 RESET dec221
     PokeA(*Adapter_Daten,Adapter_Daten_high)   ;dec88
     PokeA(*Adapter_Daten,Adapter_Daten_Low)    ;dec77
     PokeA(*Adapter_Daten,Adapter_frame)        ;start 00 end 00
Die Addresse ist immer dieselbe!

Richtig wäre->

Code: Alles auswählen

     PokeA(*Adapter_Daten,Adapter_frame)        ;start 00 end 00
     PokeA(*Adapter_Daten + 1,Adapter_Adresse)      ;00DD584D00 RESET dec
     PokeA(*Adapter_Daten + 2,Adapter_Daten_high)   ;dec88
     PokeA(*Adapter_Daten + 3,Adapter_Daten_Low)    ;dec77
     PokeA(*Adapter_Daten + 4,Adapter_frame)        ;start 00 end 00
Die Verwendung einer Struktur wäre besser...

Code: Alles auswählen

Structure PACKET_STRUCT
  Address.a
  StructureUnion
    DataBuffer.w
    HighLow.a[2]
  EndStructureUnion
  Frame.a
EndStructure

Global Adapter.PACKET_STRUCT

Adapter\Address = $DD
Adapter\DataBuffer = $4D58
Adapter\Frame = $0
Zuletzt geändert von Mijikai am 15.07.2017 17:37, insgesamt 2-mal geändert.
svenulm31
Beiträge: 7
Registriert: 07.01.2012 11:00
Computerausstattung: min. 5 Stück
Wohnort: zuhause
Kontaktdaten:

Re: UDP Paket senden

Beitrag von svenulm31 »

Prima funktioniert Danke
:allright:
Antworten