[VB] Problemen met sturen binary file via WinSock

Pagina: 1
Acties:

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ik heb een klein webservertje gemaakt die winzip files moet kunnen sturen naar verschillende clients. Hieronder de code die de binary file inleest en naar de client stuurt.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
intTemp = FreeFile
Open strFile For Binary Access Read As #intTemp
intDataSize = LOF(intTemp)

' Array starts at element zero
ReDim Data(intDataSize - 1)
Get #intTemp, , Data
Close #intTemp

' Send HTTP header
strHeader = "HTTP/1.1 200 OK" & vbCrLf
strHeader = strHeader & "Server: Microsoft-IIS/4.0" & vbCrLf
strHeader = strHeader & "Connection: close" & vbCrLf
strHeader = strHeader & "Date: Thu, 1 Jan 1980 00:00:01 GMT" & vbCrLf
strHeader = strHeader & "Content-Type: application/octet-stream" & vbCrLf
strHeader = strHeader & "Last-Modified: Thu, 1 Jan 1980 00:00:01 GMT" & vbCrLf
strHeader = strHeader & "Content-Length: " & CStr(intDataSize) & vbCrLf & vbCrLf

' Verzend file via WinSock
wskListen.SendData strHeader
wskListen.SendData Data


Als ik via Explorer 6.0 connect naar de webserver gaat het prima en krijg ik netjes een geldige winzip file terug.

Indien ik echter vanuit een Unix systeem probeer de file te grebben krijg ik steeds een corrupte file terug.
Ik heb echt geen idee meer wat ik fout doe. Zien jullie vreemde dingen aan de HTTP headers of in de code? Wellicht geeft het WinSock control problemen? Ik gebruik overigens wel SP5 van het control.

P.S: Er is ook een soortgelijke webserver in Java ontwikkeld die wel goed werkt op alle platforms.

It’s nice to be important but it’s more important to be nice


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
code:
1
Server: Microsoft-IIS/4.0

zou ik zo niet neerzetten.... kan zijn dat een client hier anders op reageert als wanneer er iets anders staat (geen idee of dat zo is, maar zou kunnen)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Kun je even langzaam uitleggen waarom je expliciet een array reserveert van de filesize minus 1? :?

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

NTGiant: RFC 2068 over HTTP 1.1 omschrijft Server als een puur informational veld dat geen gedrag mag veranderen clientside.

Professionele website nodig?


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
curry684 schreef op 11 augustus 2003 @ 17:01:
Kun je even langzaam uitleggen waarom je expliciet een array reserveert van de filesize minus 1? :?
Hoe langzaam? :+

Als je VB een array aanmaakt van 3 elementen heb je eigenlijk 4 elementen, namelijk: [0] [1] [2] en [3]

Is niet echt logisch, maar goed VB =! Java/C++ en Delphi
Vandaar dus de -1

edit:

Moet nu weer weg dus ik kan even niet replyen. Mocht iemand nog andere suggesties hebben hoor ik het uiteraard graag ;)

[ Voor 15% gewijzigd door pjonk op 11-08-2003 17:15 ]

It’s nice to be important but it’s more important to be nice


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

offtopic:
VB sux ;)


Ik heb even adh die RFC je headers doorgenomen en zo te zien werkt het allemaal perfect. Ik zou je willen aanraden een diff te nemen tussen de 2 gedownloade files, wellicht is het daarmee beter te analyseren. Tevens ben ik benieuwd welke browsers je zoal hebt gebruikt en of bijv. Mozilla onder Windows het ook goed doet.

Professionele website nodig?


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
curry684 schreef op 11 August 2003 @ 17:05:
NTGiant: RFC 2068 over HTTP 1.1 omschrijft Server als een puur informational veld dat geen gedrag mag veranderen clientside.
offtopic:
Idd het zou niet uit mogen maken... maar goed, niet iedereen houdt zich aan de RFC's...

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Kan het zijn dat er newline omzetting plaatsvindt op een of andere manier?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1