sf
Nybegynder
05. december 2005 - 18:17
Der er
56 kommentarer og 1 løsning
winsock modtag ok fra server
Jeg skal sende en del filer af sted med winsocket(TCP) når jeg har sendt det første af sted køre jeg dette loop for at vente på et OK svar fra serverne: Do DoEvents Loop Until filefin = True men selv om jeg sender ok tilbage .. kommer min program aldrig ind i Winsock_DataArrival hvad kan dette skyldes?
Annonceindlæg fra SuperOffice
sf
Nybegynder
05. december 2005 - 18:44
#1
en anden ting er når jeg laver Do DoEvents Loop Until complete = True for den førs skal forsætte når den er færdig med at sende kommer den aldrig ud af loppet.
05. december 2005 - 19:12
#2
Hej. Jeg har ikke arbejdet med winsock men bruger kontrollen msinet.ocx Dér skriver man således: On Error GoTo ingenweb2 Inet.Execute , "PUT " & netsti & medfil & " " & webfil Do While Inet.StillExecuting DoEvents Loop Kan det måske inspirere? /jørn
05. december 2005 - 19:26
#3
hvordan ser din Winsock_DataArrival ud...?
05. december 2005 - 19:58
#4
Hej. Jeg bruger ikke winsock, men msinet. Inet.Protocol = icFTP Inet.URL = ftpserv Inet.UserName = ftpuser Inet.Password = ftppw Inet.RequestTimeout = 10 Inet.Execute , "Get " & webfil & " " & netsti & medfil Do While Inet.StillExecuting DoEvents Loop Inet.Execute , "Get " & "billednr.dat" & " " & netsti & "billednr.dat" Do While Inet.StillExecuting DoEvents Loop Inet.Execute , "Get " & "filnavn.dat" & " " & netsti & "filnavn.dat" Do While Inet.StillExecuting DoEvents Loop Inet.Execute , "CLOSE"
05. december 2005 - 20:28
#5
sf >> hvordan ser din Winsock_DataArrival ud...?
sf
Nybegynder
05. december 2005 - 21:40
#6
ser sådan ud : Winsock.GetData strdata If Left(strdata, 2) = "Ok" Then Call SendData Exit Sub End If
sf
Nybegynder
05. december 2005 - 21:40
#7
har msinet.ocx en funktion til at sende filer med? en en funktion til at lave en server at modtage dem med?
05. december 2005 - 21:51
#8
hvis du ikke sender andet end "ok" (feks. vbcrlf) proev: If Right(strdata, 2) = "Ok" Then
sf
Nybegynder
05. december 2005 - 22:01
#10
inglenook >> mint problem er at den slet ikke kommer til DataArrival
05. december 2005 - 22:10
#11
hvor setter du dit loop ?? Do DoEvents Loop Until complete = True og hvad stopper dit loop?? du kommer jo ikke ud af den funktion som loppet køre i..
sf
Nybegynder
05. december 2005 - 22:20
#12
sjh>> ville jeg ikke bare kunne skrive min egen ftp server så?
05. december 2005 - 22:23
#13
sf > Jo så gør du da bare det.. men det er altså ikke få begynder.. ;)
05. december 2005 - 22:25
#14
men du kunne måske bruge ..Winsock1_SendComplete() til noget.. Option Explicit Private blnComplete As Boolean Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ... .... If blnComplete = True Then Call SendData End If ... .... End Sub Private Sub Winsock1_SendComplete() blnComplete = True End Sub
05. december 2005 - 22:29
#15
sf > Du kan jo nok se hvis du ikke engang kan lave en "Simple" File Transfer.. tror du så at du kunne lave din egen ftp-server ??
sf
Nybegynder
05. december 2005 - 22:33
#16
regnede med der var en ocx til dette. har brugt sendcomplete ellers tak.
05. december 2005 - 22:37
#17
der findes også nogle ftp-server-ocx men dem skal man betale for.. vil du det??
ellers er det jo bare at gå igang med (FTP Protocol) :
http://cie.bilkent.edu.tr/Topics/69.htm
sf
Nybegynder
05. december 2005 - 22:38
#18
det jeg gøre .. jeg sender at nu vil jeg starte en fil. derefter har jeg dette loop: Do DoEvents Loop Until filefin = True hvor filefin førs bliver true når filen er færdig sendt. i min DataArrival venter jeg så på et "ok" fra serverne der siger at data er kommet over. men når jeg køre mit: Do DoEvents Loop Until filefin = True kommer den aldrig til DataArrival som den ellers har gjort. problemet er at det er en ocx fil så der skal køre noget hele tiden for at den ikke bare bliver lukket igen. du skriver : hvor setter du dit loop ?? Do DoEvents Loop Until complete = True og hvad stopper dit loop?? du kommer jo ikke ud af den funktion som loppet køre i.. dvs. min Do DoEvents Loop Until filefin = True skal ligger under DataArrival eller hvad?
sf
Nybegynder
05. december 2005 - 22:39
#19
er der ingen gratis ftp-server-ocx? ja ellers kunne jeg godt finde på at betale for den
05. december 2005 - 22:47
#20
sf
Nybegynder
05. december 2005 - 22:50
#21
ok.. men ville nu heller have det jeg har da næsten virker til at virke.. du har ikke en kommentar til min lille fri stil?
05. december 2005 - 22:54
#22
Hvor mange MB er filerne ca. på??
sf
Nybegynder
05. december 2005 - 22:56
#23
hmm har ikke været et problem før men mellem 0.3 - 5
sf
Nybegynder
05. december 2005 - 22:59
#24
det hele kørte ellers fint ind til jeg prøvede det et sted hvor serveren modtog pakkerne i omvendt række selv om jeg ventede med at sende den næste til jeg havde fået Winsock_SendComplete
sf
Nybegynder
05. december 2005 - 23:01
#25
jeg kan ikke bede min winsocket komponent om at se efter om der kommer noget?
05. december 2005 - 23:14
#26
Når det ikke er mere så kan du sende det hele på engang.. det skal bare sendes som binary.. ' Call SendBinary(Winsock1, "C:\testfile.xxx") Public Sub SendBinary(objWS As Object, strFile As String) Dim intFree As Integer Dim arrData() As Byte intFree = FreeFile Open strFile For Binary Access Read As #intFree ReDim arrData(LOF(intFree) - 1) As Byte Get #intFree, 1, arrData Close #intFree ' objWS er din Winsock Call objWS.SendData(arrData) End Sub ' Det her på din server del.. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim intFree As Integer Dim arrData() As Byte ReDim arrData(bytesTotal) As Byte Call Winsock1.GetData(s, vbByte, bytesTotal) intFree = FreeFile Open "C:\Savefile.xxx" For Binary Access Write As #intFree Put #intFree, 1, arrData Close #intFree End Sub så får kan du tjekke om filen er send under ..Winsock1_SendComplete()
05. december 2005 - 23:16
#27
Du skal lige lave den her om til arrData og ikke s :D Call Winsock1.GetData(arrData, vbByte, bytesTotal)
05. december 2005 - 23:20
#28
se efter om der kommer noget? Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Me.Caption = bytesTotal & Now .. ...
sf
Nybegynder
05. december 2005 - 23:34
#29
hvor store filer kan jeg sende på engang?
05. december 2005 - 23:38
#30
Ja det kommer jo and på dine RAM.. men ca. 10 til 20 MB.. måske mere..
05. december 2005 - 23:39
#31
er det noget som skal sendet over Internettet eller bare localt
sf
Nybegynder
05. december 2005 - 23:44
#32
det skal være localt. vil være 250-500 sdram .. hvad vil være det meste jeg kunne sende sikkert?
sf
Nybegynder
05. december 2005 - 23:45
#33
nej skal faktisk også være over internettet.
05. december 2005 - 23:51
#34
ja sikkert er jo at sende 1 byte :D men du skal nok ikke regne med at kunne sende så meget over Internettet.. Jeg lavede en gang en test på local netværk.. og den kunne godt tage en fil på 250 MB.. men 512 MB ram og 768 MB på server..
05. december 2005 - 23:52
#35
MED 512 MB ram og 768 MB på server..
sf
Nybegynder
05. december 2005 - 23:57
#36
ok hvad med over internettet?
05. december 2005 - 23:59
#37
>Jeg lavede en gang en test på local netværk..<
06. december 2005 - 00:01
#38
sorry mig der læser forkert.. internettet ja.. men det vil jo tag langtid.. og den suger alt din ram så du kan altså ikke lave andet end at se på ;)
06. december 2005 - 00:05
#39
Du smider 250 MB i arrData() og Winsock bruger sikkert også (Et skud: 250 MB) så du kan godt se hvad der er tilbage af ram..
sf
Nybegynder
06. december 2005 - 00:06
#40
ok.. men jeg kan ikke lave en doevents fra en anden funktion som også vil se om der kommer noget nyt i winsock_DataArrival?
06. december 2005 - 00:08
#41
winsock_DataArrival er en event.. hvad vil du så bruge doevents til??
sf
Nybegynder
06. december 2005 - 00:11
#42
problemet er at det er en ocx fil så der skal køre noget hele tiden for at den ikke bare bliver lukket igen.
06. december 2005 - 00:14
#43
Hvad?? den køre da så længe dit progarm køre.. med mindre du disconnecter eller der kommer en fejl..
sf
Nybegynder
06. december 2005 - 00:18
#44
ja men mit program lukker ned når man har trykket send filer. derfor skal jeg finde en måde at vente med at lukke ocx'en ned på!?
06. december 2005 - 00:20
#45
det skulle det da ikke gerne gøre så kan du jo ikke sende noget..
06. december 2005 - 00:23
#46
Lige nu lyder det som om du vil sende en fil ud i den blå luft.. og så skal den bare vente på at der kommer en computer forbi og snupper filen :D
sf
Nybegynder
06. december 2005 - 00:24
#47
jo for får har jeg jo bare sendt data og når den så havde sendt dem lukkede den ned. men nu skal jeg jo vente på et svar fra serveren.
06. december 2005 - 00:31
#48
når du får en event fra ..Winsock1_SendComplete() så kan du lukke dit program.. du er altså nød til at vente til serveren har fået den data du sender ellers kan det jo være det samme.. Du lukker jo heller ikke din webbrowser før du har set den side du har du spørg web-serveren om vel.. du må vente til den har hentet den html som webbrowseren skal bruge for at vise siden :D
sf
Nybegynder
06. december 2005 - 00:35
#49
ok men hvordan får jeg exe filen til at vente på at min ocx som sender data får et sendcomplete?
06. december 2005 - 00:38
#50
din ocx (min ocx) det er vel winsock du mener ik??
sf
Nybegynder
06. december 2005 - 00:42
#51
men .. det er en ocx jeg har lavet.. det er den der sender og modtager data. men har så igen selvf. en winsock ocx
sf
Nybegynder
06. december 2005 - 00:47
#52
men = nej :)
06. december 2005 - 00:51
#53
Du har altså lavet en UserControl med en winsock på.. og det er den der skal styre det hele eller hvad.. Hvis Ja.. så er det jo sendcomplete under din UserControl du skal bruge..
sf
Nybegynder
06. december 2005 - 00:57
#54
ja.. men hvordan ville sendcomplete under min UserControl så se ud? og så skal min exe fil stå i en do doevents loop until UserControl.sendcomplete = true eller?
06. december 2005 - 01:09
#55
' ----------------- På din UserControl -------------- Option Explicit Public Event SendComplete() ' Event fra din UserControl Private Sub Winsock_SendComplete() ' Event fra din WINSOCK som er på din UserControl ' Når Winsock køre sin SendComplete event vil den køre din ' UserControl SendComplete event på din Form. RaiseEvent SendComplete End Sub ' ----------------- På din UserControl -------------- ' ----------------- På din Form -------------- 'Private Sub NAVNET_PÅ_DIN_USERCONTROL_SendComplete() ' 'End Sub ' ----------------- På din Form --------------
sf
Nybegynder
08. december 2005 - 10:47
#56
Mit problem er jo ikke at jeg skal vente på data er sendt .. mit problem er at jeg skal vente på svar fra serveren
sf
Nybegynder
05. november 2012 - 00:38
#57
lukker nu.
Kurser inden for grundlæggende programmering