Avatar billede rasmuzzen Nybegynder
12. april 2008 - 17:04 Der er 9 kommentarer og
1 løsning

Sende et flerdimesnionalt objekt via socket.

Dummy indeholder en masse strings (et filtræ fra en samling musik).

Dette filtræ skal sendes via socket til en anden klient. Men hvordan skal jeg "konvertere" det til en datatype der kan sendes.

Dim dummy() As String
Dim data() As Byte
data = Encoding.ASCII.GetBytes(dummy)
client.Send(data, data.Length, SocketFlags.None);

virker ikke pga. data() er flerdimensional strengværdi.

MVH
Avatar billede arne_v Ekspert
12. april 2008 - 17:09 #1
Der er flere muligheder:

1) serialisering
2) XML
3) custum binary format - eksempel send: 2 bytes med antal + 2 byte med længde + N bytes med UTF-8 encoding +
  2 bytes med længde + M bytes med UTF-8 encoding + ...
Avatar billede rasmuzzen Nybegynder
12. april 2008 - 20:34 #2
Tak arne.

Umiddelbart kan jeg ikke se System.Runtime.Serialization.Formatters.Binary Namespacet i mit PDA projekt (manglede selvfølgelig lige den information om projektet), så aht. størrelsen på frameworket er den nok udeladt. Sådan syntes jeg tit det er.....

Med mindre der er andre input så tror jeg at metode 3 er måden.
Er ikke uvandt med denne. Det er ofte metoden når man læser SNMP data, mindes jeg.

Jeg venter lige lidt, kan være der dumper en stump kode....
Avatar billede arne_v Ekspert
12. april 2008 - 20:55 #3
BinaryReader og BinaryWriter gør #3 relativ nem.
Avatar billede arne_v Ekspert
12. april 2008 - 20:59 #4
Write(String) og ReadString bruger 4 byte længde hvilket nok er overdimensioneret, men
det er nemt selv at lave Write(Int16) + Write(byte[]) og ReadInt16 + ReadBytes(int)
Avatar billede rasmuzzen Nybegynder
13. april 2008 - 11:12 #5
Er det helt hen i vejret at løbe alle mine strenge igennem een efter een, konvertere dem til byte[] add'e dem til en fælles byte[], dette med en header på som du først skrev, som jeg selv havde fra starten i baghovedet, for så at sende dem via socket.

Jeg jer ikke checket binary reader og writer om den er i PDA frameworket. Men man bliver slemt skuffet hver gan. Socket er der ihvertfald.

MVH
Avatar billede arne_v Ekspert
13. april 2008 - 17:01 #6
BinaryWriter og Reader er i CF.

Og maa vaere nemmere end manuelt at maintaine et array.
Avatar billede rasmuzzen Nybegynder
14. april 2008 - 10:40 #7
Arne smid et svar.
Jeg har fået skrevet hele molevitten ned i en memorystream med binartwriter med en header der fortæller for hver linje der er skrevet, hvor lang byte længden er, så tak for hjælpen.

MVH
Avatar billede arne_v Ekspert
14. april 2008 - 14:59 #8
svar
Avatar billede arne_v Ekspert
29. august 2008 - 02:50 #9
så mangler du bare at acceptere svaret
Avatar billede arne_v Ekspert
28. oktober 2008 - 03:06 #10
?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester