Avatar billede h7iws Nybegynder
12. marts 2006 - 21:14 Der er 8 kommentarer og
1 løsning

VB6 Winsock http send-file

Jeg er stadig i gang med et program i VB6 og er nu kommet til at skulle sende filer til en browser der forbinder til mit program.

Det er ikke noget problem i første omgang, jeg checker bare om filerne eksisterer og sender så, men nu hvor nogle af filerne er blevet på mere end 3 kb kan jeg ikke sende mere af dem, og har gennem megen læsning fundet frem til at det er fordi winsock ikke kan sende mere i en 'pakke'.
Nu er jeg altså bare nået dertil at jeg ikke gider at læse meget mere, har haft fat i mange tutorials, men syntes ikke at der er så mange der beskæftigerer sig med netop dette, hvad er syntaksen for at sende data når man bliver nødt til at dele det op og sende små pakker ?
og endnu bedre, hvis nogen allerede har lavet koden og det er rimelig overskueligt.
Jeg håber at i kan hjælpe mig ...
Mvh Emil
Avatar billede h7iws Nybegynder
12. marts 2006 - 21:15 #1
bemærk venligst at det gerne skal kunne virker til både Firefox og Internet explore !
På forhånd tak... Emil
Avatar billede sjh Nybegynder
13. marts 2006 - 07:00 #2
øh.. hvad har dit program lige med "Firefox og Internet explore" afgøre??

og kan man sende en file til en browser?? (normal sender man dem til en server når vi snakker om winsock)
Avatar billede h7iws Nybegynder
13. marts 2006 - 07:11 #3
Ok undskyld, mit spørgsmål var måske ikke så godt forklaret.
Programmet er en server der leverer html til hvem der nu logger på min computer, fx. http://192.168.1.1/index.htm
herefter sender serveren så vha. Winsock til klienten (som bruger firefox eller internet explore), men nu vil jeg så gerne at min klient også kan modtage filer, det var så hvad syntaksen for at sende en fil på mere end 3kb var, og/eller evt. noget kode til at løse problemet med ??
Mvh Emil
Avatar billede sjh Nybegynder
13. marts 2006 - 07:25 #4
det med firefox og internet explore skal du ikke tenke på.. så længe du holder dig til http-protocol..

Ja du skal sende din file som bytes.. i et array så skulle der ikke være nogle problemer..


Dim arrData() As Byte
Dim intFree As Integer
Dim strFilename As String

  strFilename = "??"
  intFree = FreeFile
  Open strFilename For Binary Access Read As #intFree
    ReDim arrData(LOF(intFree) - 1) As Byte
    Get #intFree, , arrData
  Close #intFree

  Winsock1.SendData arrData
Avatar billede h7iws Nybegynder
13. marts 2006 - 08:22 #5
Ok, fair nok, det virker... troede der skulle meget mere til ... regnede med at man skulle skrive alt muligt for at få den til at modtage det rigtigt ...

Du skal have tusinde tak for hjælpen ... ;)
Avatar billede sjh Nybegynder
13. marts 2006 - 08:23 #6
selv tak.. ;)
Avatar billede h7iws Nybegynder
13. marts 2006 - 08:33 #7
Du kender ikke til nogle tutorials hvor man evt. kan læse lidt om firefox og/eller internet explore ... eller for den sags skyld om http ??
Kunne nemlig godt tænke mig at man kunne se hvad filen fyldte mens man downloadede den...?
Avatar billede sjh Nybegynder
13. marts 2006 - 08:43 #8
Avatar billede sjh Nybegynder
13. marts 2006 - 08:46 #9
mener at det er noget med at du skal skrive "Length: xxxx" efter fuldt af en vbCrLf (return).. og det skal sendes som header.. før du sender filen..
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