17/02/10 18:27
carant
Salve a tutti,
nel mio programma dovrei inviare un file (direttamente con i socket), questo è il codice che ho usato per inviare il file:
e questo per la ricezione, con un timer che controlla se c'è qualcosa da ricevere:
l'applicazione si blocca e non esce neanche il debug.
(Ho seguito la guida di totem)
Ciao.
nel mio programma dovrei inviare un file (direttamente con i socket), questo è il codice che ho usato per inviare il file:
Public Sub sendfile(ByVal s As String, ByVal socket As System.Net.Sockets.Socket) If System.IO.File.Exists(s) Then Dim size As Int64 = FileLen(s) Dim bytes(4095) As Byte Dim reader As New IO.FileStream(s, IO.FileMode.Open) If size > 4096 Then For Block As Int64 = 0 To size Step 4096 'Se i bytes rimanenti sono più di 4096, 'ne legge un blocco intero If size - Block >= 4096 Then reader.Read(bytes, 0, 4096) Else 'Altrimenti un blocco più piccolo reader.Read(bytes, 0, size - Block) End If socket.Send(bytes) Threading.Thread.Sleep(30) Next Dim buffer As Byte() buffer = System.Text.Encoding.ASCII.GetBytes("END") socket.Send(buffer) End If End If End Sub
e questo per la ricezione, con un timer che controlla se c'è qualcosa da ricevere:
Public Sub timertick() Handles timer.Tick If s.Available > 0 Then Do Dim a As Integer a = s.ReceiveBufferSize Dim b(a) As Byte Dim msg As Integer msg = s.Receive(b) Dim str As String str = System.Text.Encoding.ASCII.GetString(b) If str.Contains("END") Then Exit Do End If Dim stream As New IO.FileStream(stimer, IO.FileMode.Create) stream.Write(b, 0, 4096) Loop End If End Sub
l'applicazione si blocca e non esce neanche il debug.
(Ho seguito la guida di totem)
Ciao.
aaa