Array über Netzwerk senden

Für allgemeine Fragen zur Programmierung mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Array über Netzwerk senden

Beitrag von a14xerus »

Hi Leute.. kann ich ein komplettes Array mit allen inhalten
(folgendes array
array(30)\name
array(30)\id
...
)
über netzwerk verschicken?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ich glaube kaum, dass es dafür einen speziellen Befehl gibt. Am einfachsten ist es daher vermutlich, mit For-Schleifen das Array zu durchlaufen und die Daten zu übermitteln. Die gegenstelle nimmt diese Daten dann in der gesendeten Reihenfolge auf und packt sie ihrerseits in ein (strukturiertes) Array.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn in der structure keine strings drin sind, kannste auch den memory-bereich senden.
der empfänger muss dann allerdings präzise die struktur und die gesamtgröße kennen.
wenn strings drin sind, musst du so vorgehen, wie AND vorgeschlagen hat.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

so müßte das hinhau'n

Code: Alles auswählen

Structure strct
  x.l
  y.l
  r.l
EndStructure
width=2
height=2

Dim a.strct(width-1,height-1)

Debug  SizeOf(strct)
Debug  "array size: "+Str( width*height*SizeOf(strct) )
..und dann mit SendNetWorkData() mit der startaddresse vom array senden.
Zuletzt geändert von #NULL am 14.08.2006 14:33, insgesamt 1-mal geändert.
my pb stuff..
Bild..jedenfalls war das mal so.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

aber wie gesagt, dass geht nur wenn in der structure keine strings drin sind.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

danke für die hilfe... aber leider sind Strings drinnen.. trotzdem danke
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Wenn die Strings ne maximale Länge haben:
Structure Test
s.s{20}
EndStructure

So gehts dann auch.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

Für sowas wäre ja mal ne Serialize Procedure nett.....
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag von TomTom »

hi ich habe einen array.L(30,30)

was muss ich dann bei SendNetWorkData() angeben?
wie kann die andere Seite den array empfangen?

thx!
Pure Basic 4.0
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ungetested:

Code: Alles auswählen

SendNetworkData(ClienID, @array(), 30*30*4)
Beim empfang mit Pointern arbeiten oder mit CopyMemory
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten