Avatar billede tetrix Nybegynder
03. december 2010 - 16:13 Der er 7 kommentarer og
1 løsning

LAN overførsel - kun 1 mb/s

Hej.

Har før i tiden lavet TCP transfers i C#, der var jeg oppe på mindst 11 mb/s (LAN). Dengang brugte jeg TcpClient, nu bruger jeg sockets, men det er langsommere, undrer mig over hvorfor?

Modtager:
NetworkStream ns = new NetworkStream(socket);
FileStream fs = new FileStream("fil", FileMode.OpenOrCreate);
byte[] byteArray = new byte[8192];
int i = ns.Read(byteArray, 0, 8192);
while (i > 0)
{
    fs.Write(byteArray, 0, i);
    fs.Flush();
    //read next
    i = ns.Read(byteArray, 0, 8192);
}
fs.Close();


Sender:
FileStream fs = new FileStream("fil", FileMode.OpenOrCreate);
byte[] byteArray = new byte[8192];
int i = fs.Read(byteArray, 0, 8192);
while (i > 0)
{
    ns.Write(byteArray, 0, i);
    ns.Flush();
    //read next
    i = fs.Read(byteArray, 0, 8192);
}
fs.Dispose();
fs.Close();


Håber I kan hjælpe!
Avatar billede arne_v Ekspert
03. december 2010 - 16:19 #1
proev og drop Flash kaldene (de er ikke noedvendige i denne kontekst)
Avatar billede arne_v Ekspert
03. december 2010 - 16:20 #2
Proev evt. ogsaa med en lidt stoerre buffer.
Avatar billede tetrix Nybegynder
03. december 2010 - 16:44 #3
Begge forsøgt, samme resultat.

Skal siges at jeg finder mit socket gennem asynchronous sockets.
Avatar billede arne_v Ekspert
03. december 2010 - 16:50 #4
Saa var det vist oplagte at proeve at teste med en "normal" socket.
Avatar billede arne_v Ekspert
03. december 2010 - 16:50 #5
der boer ikke vaere forskel fordi TcpClient er en simpel wrappe romkring Socket
Avatar billede tetrix Nybegynder
04. december 2010 - 20:28 #6
Men jeg kan ikke teste med en normal socket, da det er gennem async, at jeg finder frem til det givne socket.
Avatar billede arne_v Ekspert
04. december 2010 - 20:35 #7
Hvad er problemet du forsøger at løse med async?
Avatar billede tetrix Nybegynder
26. december 2010 - 16:12 #8
En non-threaded løsning. Lukker her.
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