Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - problema file tranfer winsock vb.net
Forum - C# / VB.NET - problema file tranfer winsock vb.net

Avatar
manudd93 (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/05/2011

Segnala al moderatore
Postato alle 9:32
Domenica, 29/05/2011
ciao a tutti questo è il mio codice per il trasferimento di un file ma ho un problema
la prima volta il file viene inviato la seconda volta il codice di blocca e nn funziona piu ecco qui il codice  il client che deve ricevere il file:
Codice sorgente - presumibilmente VB.NET

  1. dim savenum as integer
  2.  Private Sub Winsock1_ConnectEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Winsock1.ConnectEvent
  3.         savenum = 1
  4.         FileOpen(savenum, "C:\prova.txt", OpenMode.Binary)
  5. end sub
  6. Private Sub Winsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock1.DataArrival
  7.  
  8. Timer1.Enabled = False
  9.        
  10.         Dim RcvdData() As Byte
  11.         Winsock1.GetData(RcvdData)
  12.         FilePut(savenum, RcvdData)
  13.         Timer1.Enabled = True
  14. end sub
  15. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  16.         FileClose(savenum)
  17.         Timer1.Enabled = False
  18.         MsgBox("file ricevuto", MsgBoxStyle.Information)
  19. end sub


poi questo è il server che invia il file:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  2. Dim i As Integer
  3.  
  4.                 Dim ReadNum As Integer
  5.                 Dim ReadData(2047) As Byte
  6.                 Dim ReadLength As Long
  7.  
  8.                 ReadNum = 2
  9.  
  10.                 FileOpen(ReadNum, "C:\desk.jpg", OpenMode.Binary)
  11.                 ReadLength = LOF(ReadNum)
  12.  
  13.  
  14.                 For i = 1 To ReadLength \ 2048
  15.                     FileGet(ReadNum, ReadData)
  16.                     Winsock1.SendData(ReadData)
  17.                 Next
  18.  
  19.                 If ReadLength Mod 2048 <> 0 Then
  20.                     Dim ReadData2((ReadLength Mod 2048) - 1) As Byte
  21.  
  22.                     FileGet(ReadNum, ReadData2)
  23.                     Winsock1.SendData(ReadData2)
  24.                 End If
  25.  
  26.                 FileClose(ReadNum)
  27. end sub


cosa è che nn va e poi mi dice che  FilePut(savenum, RcvdData) nome o numero file nn valido mi potreste aiutare grz
:)

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:24
Lunedì, 30/05/2011
FileOpen, FileGet, FilePut, LOS, Winsock e MsgBox sono tutte funzioni o componenti di VB6. Se vuoi postare nella sezione .NET devi programmare in .NET, quindi fare un salto avanti nel tempo di circa 10 anni.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
manudd93 (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/05/2011

Segnala al moderatore
Postato alle 12:57
Lunedì, 30/05/2011
quindi le winsock le devo buttare ma nn capisco perche i componeti com sono quasi proibiti in .net?

PM Quote
Avatar
Phil93 (Normal User)
Pro


Messaggi: 85
Iscritto: 26/01/2011

Segnala al moderatore
Postato alle 13:37
Lunedì, 30/05/2011
Non è che sono proibite, è che nella stragrande maggioranza dei casi esiste un equivalente .NET molto più robusto ed efficente.

PM Quote