Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di rambco
    Registrato dal
    Aug 2001
    Messaggi
    582

    [VB] Problemone con eventi !

    Allora io ho una listview e 2 winsock ! Questi due winsock scambiano dati con un server che gli invia dei file ! Ora per ogni winsock ci sta un item della listview che mi dice quanto e' grande quanto ci manca etc etc e fa i calcoli su di essa ! Adesso il problema e' che quando attivo il secondo winsock e quindi va ad operare con il secondo item della listview il primo si blocca ! Ho provato a mettere i doevents sui winsock ma mi da sempre la stessa rogna ! Come posso fare ?

  2. #2
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    è meglio che usi un winsock indicizzato per la stessa connessione
    winsock1(0) e winsock1(1) ecc, ne puoi indicizzare fino a quanto ne può contenere la memoria del tuo pc

    quando fai il send usa il doevents

  3. #3
    Utente di HTML.it L'avatar di rambco
    Registrato dal
    Aug 2001
    Messaggi
    582

    ho provato

    ma neinte !

  4. #4
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    ma quando usi un winsock solo riesci ad effettuare e spedire al server il files?

    chi è che fà da server?
    posta il codice

  5. #5
    Utente di HTML.it L'avatar di rambco
    Registrato dal
    Aug 2001
    Messaggi
    582
    ----Lato server
    Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim Dati As String
    Dim Comando As String * 2
    Dim Dato As String
    Winsock1(Index).GetData Dati
    Comando = Left(Dati, 2)
    Dato = Mid(Dati, 3)
    Select Case Comando
    Case "00":
    Open "c:\prova.rar" For Binary As Index
    Seek Index, Dato
    Winsock1(Index).SendData "01"
    Case "01"
    If LOF(Index) - Loc(Index) >= 4096 Then
    Dato = Input(4096, #1)
    Else
    Dato = Input(LOF(Index) - Loc(Index), Index)
    Close Index
    End If
    DoEvents
    Winsock1(Index).SendData "01" & Dato
    End Select
    End Sub
    -Lato client
    Dim Dati As String
    Dim Comando As String * 2
    Dim Dato As String
    Winsock4(Index).GetData Dati
    Comando = Left(Dati, 2)
    Dato = Mid(Dati, 3)
    Select Case Comando
    Case "01"
    Put #2, , Dato
    ListView1.ListItems(Index).SubItems(3) = CLng(ListView1.ListItems(Index).SubItems(3)) + Len(Dato)
    If ListView1.ListItems(Index).SubItems(3) = ListView1.ListItems(Index).SubItems(2) Then
    Else
    DoEvents
    Winsock4(Index).SendData "01"
    End If
    End Select

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.