Avatar billede acronym Nybegynder
14. november 2002 - 13:35 Der er 8 kommentarer og
1 løsning

Har problemer med at få billeder til at passere gennem min proxy

Hej allesammen,
I forbindelse med mit studie skal jeg lave en proxyserver. Det er indtil videdere gået meget godt indtil jeg skulle til at hente billeder fra web-serveren. Jeg modtager fint data, men det er ligesom om når det er et billede jeg modtager går det i kage.
Mit Spørgsmål lyder:
Håndterer man billeder anerledes når man modtager fra web-server og sender dem til klient/browser ?.
Her et lille udpluk af koden hvor jeg modtager og sender, det kan være der er en med blik for den slags der kan se om jeg gør noget galt.

while((recvsize=recv (websockfd, &WanReply, 8192, 0))>0)               
{
send (newsockfd, &WanReply, 8192, 0);
CleanBuffer(HostName_P, WanReply_P, BrowserGetReq_P); //renser buff
recv (websockfd, &WanReply, 8192, 0);
}

Det skal siges at jeg har prøvet at lave modtage bufferen som både et int-array og char-array.

Håber jeg har lavet noget galt og der er en der kan fortælle mig hvad.
      På forhånd tak
        Acronym
Avatar billede arne_v Ekspert
14. november 2002 - 13:44 #1
Umiddelbart virke det meget suspekt at du laver
2 recv og 1 send per gennemløb !
Avatar billede arne_v Ekspert
14. november 2002 - 13:53 #2
Min hypotese er at filer <= 8KB er OK,
mens filer > 8KB går galt (fordi du sender 8KB,
glemmer 8KB, sender 8KB, glemmer 8 KB etc.),
og at billed-filerne er større end tekst-filerne.
Avatar billede acronym Nybegynder
14. november 2002 - 14:10 #3
Mht til de 2 gange recv() kan jeg se hva du mener. Men det løser ikk problemet. Grunden til jeg kun modtager 8KB er at det ikke er muligt at kunne modtage alle billeder i et hug. Man kan simpelthen ikke lave så stor en buffer. Derfor modtager jeg det i packets af 8KB. Når jeg  har proxy'en kørende og prøver at forbinde til en hjemmeside får jeg (med undtagelse af sider der starter med at requeste et billede) alt indhold frem.
                Ellers tak for dit svar
Avatar billede arne_v Ekspert
14. november 2002 - 14:19 #4
Det er da helt OK at du sender det i chunks af 8 KB.

Men du skal have 1 recv og 1 send per gennemløb.
Avatar billede acronym Nybegynder
14. november 2002 - 14:36 #5
jeps.... det har jeg bemærket. Jeg har fjernet den nederste recv() i løkken. Det skulle derefter passe med 1 recv() og 1 send pr. gennemløb. :)
Avatar billede arne_v Ekspert
14. november 2002 - 14:44 #6
Godt.

Men det virker stadigvæk ikke eller ?
Avatar billede acronym Nybegynder
14. november 2002 - 15:35 #7
nej .... jeg får stadig ikke billeder igennem. Og det er jeg ved at være godt træt af.
Avatar billede arne_v Ekspert
14. november 2002 - 16:08 #8
Jeg kan lige se et andet problem.

Du recv'er recvsize bytes men send'er 8192.

Prøv at send'e recvsize.
Avatar billede acronym Nybegynder
14. november 2002 - 16:36 #9
Kanon.... nu lykkedes det at få et billede igennem. Men der er stadig nogle finesser der tilsyneladende skal rettes til....Den går tilsyneladende kold når hjemmesiden er lidt for komplex men det er nok et helt andent problem. mange tak for hjælpen.
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