Avatar billede neigaard Nybegynder
20. april 2002 - 15:16 Der er 2 kommentarer og
1 løsning

Data terminator igen

Kig på følgende link for forhistorien:
http://www.eksperten.dk/spm/200146

Var det måske en bedre ide kun at læse størrelsen af filen ind, i stedet for at matche på data?

Hvordan ville jeg evt. gøre det? Noget med at dividere filstørrelsen med evt. 2048, og så lave et loop der læser det antal gange, og så til sidst læse resten ind?
Avatar billede neigaard Nybegynder
20. april 2002 - 17:13 #1
Argh jeg kan ikke få det til at virke, se følgende kode:

[SNIP]
OutputStream vos = ver.getDataStream();
int n;
for(int fs=0;fs<fileSize;fs++) {
  n = in.read();
  vos.write(n);
}
vos.close();
[/SNIP]

Jeg regnede med at mit kode ville læse fra in, og så skrive til vos indtil filesize, men det gør den ikke, det er som om at in.read() kun læser hvis der kommer en CRLF, kan det passe?

Nogle ideer til hvordan jeg får det til at virke?
Avatar billede neigaard Nybegynder
20. april 2002 - 18:10 #2
2 x Argh - det var min telnet klient jeg brugte til at teste med der først sendte data når jeg trykkede enter, stupido me :)

Så den fejl kan I guruer altså ignorere, men er der en bedre metode?
Avatar billede tson Nybegynder
26. april 2002 - 23:14 #3
Hvis du sender længden på filen først, så får du en simplere protokol, men den kan ikke bruges til streaming a data hvor du ikke kender længden på forhånd. byte-stuffing metoden er mere generel men kræver en lille smule processering på både afsender og modtager siden.

Hvis modtageren ikke på forhånd kender længden af data, er der nødt til at være et signal i datastrømmen. Hvis der er nødt til at være et signal i datastrømmen er man nødt til at encode data, så det pågældende signal ikke pludselig dukker op. Byte-stuffing er en sådan enkodning. Det betyder at man skal læse alle data på afsender siden og "byte-stuffe" data hvis signallet dukker op i datastrømmen, og på samme måde skal modtageren "afstuffe" de modtagene data.

Der er altså ikke andre måder end de to udstukne, og du må vælge udfra:

1. at sende længden
* Nemmest at implementere
* Kræver mindre processering

2. at bruge en stop-marker og byte-stuffing:
* Tillader streaming (af data hvor længden ikke på forhånden er kendt)
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