Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB 6] inviare immagini con winsock

    salve a tutti...stò cercando di aiutare, e anche di farlo per me, una persona nell'inviare mediante una connessione winsockdelle immagini...

    ho ragionato così: apro il file in modalità binaria leggo byte a byte e lo mando con il metodo SendData...

    all'evento DataArrival dell'altro form apro un altro file e mediante il metodo GetData reperisco l'informazione e la scrivo nel file...

    il problema è questo...mediante un ciclo leggo tutti i byte dell'immagine ed ogni volta la spedisco ma invece che arrivare divisi i dati arrivano tutti insieme....mannaggia...

    c'è un modo per spedire un dato...farlo arrivare...specire il secondo...farlo arrivare...etc???

    grazie a tutti ho anche provato con il metodo Listen...ma una volta che lo richiamo mi invia il primo dato...l'altro form me lo legge ma poi non mi invia tutti gli altri...

    aiuto..grazie
    Let's your dream came true!

  2. #2
    help me....
    Let's your dream came true!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    se fai una ricerca trovi la soluzione............
    comunque, in breve, devi leggere il file in input binary, leggere 8192 byte alla volta e spedirli con send, dall'altra parte aprire il file in output... tipo miaimmagine.jpg e scrivere 8192 byte alla volta se il file è più corto di 8192, per esmpio è lungo 197 bytes fai un ciclo for solo di 197 e chiudi, se è più lungo di 8192, diciamo 10134, spedisci la prima trance di 8192 bytes e l'ultimo ciclo rimanente sarà di 1942 bytes.

    ciao

  4. #4
    ho cercato nel forum ma non ho trovato niente e cmq, ringraziandoti dell'aiuto, il problema ponendoo con il tuo metodo rimane...

    1. la variabile che deve leggere i dati di che tipo deve essere?????
    2. la variabile che lo deve ricevere i dati deve essere dello stesso tipo????

    poi..

    con il tuo metodo faccio così(nel caso ci siano 2 parti):

    wins.senddata primaparte
    wins.senddata secondaparte

    ma dalla parte del destinatario non arrivano i dati divisi ma tutti insieme

    wins.getdata data

    arrivano tutti insieme...mi potresti dire come facciop per farli arrivare separati...grazie per l'aiuto
    Let's your dream came true!

  5. #5
    come già detto sul forum




    per usare i socket adeguatamente in maniera che eseguano + di una operazione alla volta è bene usare due collection di socket
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  6. #6
    carina l'immagine :gren: :gren:

    cmq avevo già cercato nel forum non trovando niente...cmq visto che sembri saperne più di me...(altrimenti non eri moderatore :gren: ) potresti postarmi un esempio...un qualcosa di concreto...grazie.
    Let's your dream came true!

  7. #7
    grazie al sito www.winsockvb.com ho risolto senza collection e senza niente...ciao ciao:gren:
    Let's your dream came true!

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    intanto trovi quanto è lungo il file....
    diciamo...........

    LnFile = FileLen(TuoFile.jpg)

    poi.....

    Dim buffile2 As String
    If LnFile > 8192 Then
    nLoop = Fix(LnFile / 8192) 'totale +
    nRemain = LnFile Mod 8192 'rimanenza
    Else
    nLoop = 0 'se + corto di 8192 o =
    nRemain = LnFile 'questa è la lunghezza del file
    End If

    poi..... apri il file

    Open TuoFile.jpg For Binary As #1
    For Cn = 1 To nLoop
    Get #1, , buffile2
    WSCK(1).SendData buffile2 'stai inviando 8192 bytes alla volta
    'al ricevente che ricostruisce il
    ' pacchetto in output
    DoEvents
    Next

    poi..... per la rimanenza del file, se c'è, pensaci un pò sù. Ora non dovrebbe essere difficile fare da solo.

    If nRemain > 0 Then
    ?????? 'coraggio......... 'quì invii la rimanenza, ovvero l'ultimo
    'pacchetto di bytes
    endif

    close #1




    ciao

  9. #9
    grazie comunque
    Let's your dream came true!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.