Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - winsock client download
Forum - Visual Basic 6 - winsock client download

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
black93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 19/07/2008

Segnala al moderatore
Postato alle 14:35
Sabato, 19/07/2008
salve
potete aiutarmi a sviluppare il seguente codice per far si che quando si seleziona nel textbox il file, tramite un button parta il download??Xd
client
Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. Private ELENCADIR As Boolean
  3.  
  4. Private Sub ElencaFrame_DragDrop(Source As Control, X As Single, Y As Single)
  5.  
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9.     Load Client(1)                  ' Alloca istanza
  10. End Sub
  11.  
  12. Private Sub Connetti_Click()
  13.     If Trim(HostName.Text) = "" Then Exit Sub
  14.     Unload Client(1)                ' Dealloca prima di utilizzare
  15.     Load Client(1)                  ' Rialloca istanza
  16.     Client(1).Connect Trim(HostName.Text), 1500
  17. End Sub
  18.  
  19. Private Sub Disconnetti_Click()
  20.     Client(1).Close                 ' Disconnetti
  21. End Sub
  22.  
  23. Private Sub AggiornaButton_Click()
  24.     If Client(1).State <> sckConnected Then Exit Sub
  25.     ELENCADIR = True
  26.     If SceltaDIR(0).Value Then Client(1).SendData "DIRF" & vbNewLine
  27.     If SceltaDIR(1).Value Then Client(1).SendData "DIRS" & vbNewLine
  28.     If SceltaDIR(2).Value Then Client(1).SendData "DIR" & vbNewLine
  29. End Sub
  30.  
  31. Private Sub Client_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  32.     Dim DATI As String
  33.     Client(1).GetData DATI, vbString, bytesTotal ' Ricevi
  34.     If ELENCADIR = True Then PreparaElenco DATI
  35. End Sub
  36.  
  37. Private Sub ElencoFiles_DblClick()
  38.     Client(1).SendData "CD " & ElencoFiles.Text & vbNewLine
  39. End Sub
  40.  
  41. Private Sub PreparaElenco(ByVal Elenco As String)
  42.     Dim INVIO As Integer
  43.     ELENCADIR = False
  44.     ElencoFiles.Clear
  45.     Elenco = Mid(Elenco, InStr(1, Elenco, vbNewLine))
  46.     INVIO = InStr(1, Elenco, vbNewLine)
  47.     If InStr(INVIO + 1, Elenco, vbNewLine) < 1 Then INVIO = 0
  48.     While INVIO <> 0
  49.         ElencoFiles.AddItem Mid(Elenco, INVIO + 2, InStr(INVIO + 1, Elenco, vbNewLine) - INVIO - 2)
  50.         INVIO = InStr(INVIO + 1, Elenco, vbNewLine)
  51.         If InStr(INVIO + 1, Elenco, vbNewLine) < 1 Then INVIO = 0
  52.     Wend
  53. End Sub


Server
Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. Private DATIINARRIVO As String      ' Dati senza invio
  3.  
  4. Private Sub Form_Load()
  5.     Server.Listen
  6. End Sub
  7.  
  8. Private Sub Form_Unload(Cancel As Integer)
  9.     Server_Close                    ' Chiusura del server
  10.     End
  11. End Sub
  12.  
  13. Private Sub Server_Close()
  14.     Server.Close
  15.     Server.Listen                   ' Riapre la porta in ascolto
  16.     StatoConnessione.Caption = "Nessun utente collegato"
  17. End Sub
  18.  
  19. Private Sub Server_ConnectionRequest(ByVal requestID As Long)
  20.     Server.Close
  21.     Server.Accept requestID         ' Accetta connessione
  22.     DoEvents
  23.     TimeOut.Enabled = True          ' Avvia countdown
  24.     StatoConnessione.Caption = "Un utente collegato"
  25. End Sub
  26.  
  27. Private Sub Server_DataArrival(ByVal bytesTotal As Long)
  28.     Dim DATI As String
  29.     TimeOut.Enabled = False
  30.     On Error Resume Next
  31.     Server.GetData DATI, vbString, bytesTotal ' Legge buffer
  32.     DATIINARRIVO = DATIINARRIVO & DATI ' Appende buffer
  33.     If Right(DATIINARRIVO, 2) = vbNewLine Then
  34.         GestisciComandi Left(DATIINARRIVO, Len(DATIINARRIVO) - 2)
  35.         DATIINARRIVO = ""
  36.     End If
  37.     TimeOut.Enabled = True          ' Azzera countdown
  38. End Sub
  39.  
  40. Private Sub TimeOut_Timer()
  41.     Server_Close
  42.     TimeOut.Enabled = False
  43. End Sub
  44.  
  45. Private Sub GestisciComandi(ByVal COMANDO As String)
  46.     Dim VALORE As String
  47.     On Error Resume Next
  48.     If InStr(1, COMANDO, " ") <= 0 Then
  49.         Select Case UCase(COMANDO)      ' Comandi senza parametri
  50.             Case "QUIT": Server_Close
  51.             Case "BYE": Server_Close
  52.             Case "DIR": LeggiFilesDir CurDir, True, True
  53.             Case "DIRS": LeggiFilesDir CurDir, True, False
  54.             Case "DIRF": LeggiFilesDir CurDir, False, True
  55.             Case Else: Server.SendData " -ERR: Comando sconosciuto -> " & COMANDO & vbNewLine
  56.         End Select
  57.     Else                            ' Comandi con parametri
  58.         VALORE = Trim(Mid(COMANDO, InStr(1, COMANDO, " ") + 1))
  59.         If UCase(Left(COMANDO, InStr(1, COMANDO, " ") - 1)) = "CD" Then
  60.             ChDir VALORE
  61.             Server.SendData " +OK: La cartella di lavoro è: " & CurDir & vbNewLine
  62.         End If
  63.     End If
  64. End Sub
  65.  
  66. Public Sub LeggiFilesDir(ByVal CARTELLA As String, ByVal CARTELLE As Boolean, ByVal FILES As Boolean)
  67.     Dim ELENCOFILESDIR As String
  68.     Dim TEMPSTR As String
  69.     Dim VALIDO As Boolean
  70.     ELENCOFILESDIR = ""
  71.     If Right(CARTELLA, 1) = "\" Then CARTELLA = Left(CARTELLA, Len(CARTELLA) - 1)
  72.     TEMPSTR = Dir(CARTELLA & "\*.*", vbArchive + vbDirectory + vbHidden + vbNormal + vbReadOnly + vbSystem)
  73.     While TEMPSTR <> ""
  74.         VALIDO = False
  75.         If (CARTELLE = True) And (GetAttr(CARTELLA & "\" & TEMPSTR) And vbDirectory) = vbDirectory Then VALIDO = True
  76.         If (FILES = True) And (GetAttr(CARTELLA & "\" & TEMPSTR) And vbDirectory) <> vbDirectory Then VALIDO = True
  77.         If VALIDO = True Then ELENCOFILESDIR = ELENCOFILESDIR & vbNewLine & TEMPSTR
  78.         TEMPSTR = Dir               ' Elemento successivo
  79.     Wend
  80.     Server.SendData " +OK: " & ELENCOFILESDIR & vbNewLine
  81. End Sub


PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 18:18
Sabato, 19/07/2008
In un forum si posta indicando il PROBLEMA che si ha e cosa non va. Poi si fornisce il codice dicendo dove potrebbe essere il problema ...

Come hai posto tu la questione, non si sa cosa e dove fare ...

PM Quote
Avatar
black93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 19/07/2008

Segnala al moderatore
Postato alle 9:55
Domenica, 20/07/2008
Non centra.Io sto chiedendo una mano perchè non so come fare fare per far si che quando si seleziona l'oggetto dalla list tramite un cmd download si possa  scaricare il file..sempre che qualcuno sappia come fare

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 10:29
Domenica, 20/07/2008
Testo quotato

Postato originariamente da black93:

Non centra.



Mentre, secondo me, quello che ti ho detto, c'entra ...

Testo quotato

... quando si seleziona l'oggetto dalla list ...



Non era una textbox ?

Testo quotato

tramite un cmd download si possa  scaricare il file..



Ma il codice lo hai scritto tu?

Ci sono degli esempi di comandi inviati per avere la lista delle cartelle e dei file (sembra un tentativo mal realizzato di trojan ...) ...

Comincia ad aggiungere un comando per l'invio di file (ad esempio FILE) e poi si aggiunge il codice per lo scambio vero e proprio ...

PM Quote
Avatar
black93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 19/07/2008

Segnala al moderatore
Postato alle 11:17
Domenica, 20/07/2008
mi spieghi meglio come fare???pls

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 11:22
Domenica, 20/07/2008
Ad esempio, dove c'e'

Case "DIRF": LeggiFilesDir CurDir, False, True

viene eseguito il comando DIRF inviato dal client.

Tu devi inserire un altro comando, ad esempio

Case "FILE": RiceviFile

e modificare il client in modo che invii tale comando e subito dopo invii il file e nel server in modo che riceva il comando e riceva il file ...

PM Quote
Avatar
black93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 19/07/2008

Segnala al moderatore
Postato alle 11:36
Domenica, 20/07/2008

edit:
aggiungo al client :
Private Sub download_Click()
Win.SendData "file"
End Sub

poi al server:
case "file"...però come posso fare per far si che mi invii l'elemento selezionato???
:-?

Ultima modifica effettuata da black93 il 20/07/2008 alle 11:54
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 12:00
Domenica, 20/07/2008
Oltre al comando FILE invia anche il nome del file ...

Quando il server riceve il comando, estrae il nome del file e puo' leggerlo e inviarlo ...


PM Quote
Avatar
black93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 19/07/2008

Segnala al moderatore
Postato alle 12:04
Domenica, 20/07/2008
Vieni su msn cosi parliamo meglio...ti ho aggiunto

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo