Buongiorno,
studiando le guide sui sockets, girovagando un po su google e leggendo le varie domande degli utenti, ho capito come funzionano questi sockets.
Riesco senza problemi ad inviare file in locale, ma sul remoto ho qualche problema...

per inviare uso questo codice ( ricavato dalla guida sui sockets):
codice:
Dim Reader As New IO.FileStream(filename, IO.FileMode.Open)
        Dim Size As Int64 = FileLen(filename)
        Dim Bytes(4095) As Byte
        If Size > 4096 Then
            For Block As Int64 = 0 To Size Step 4096
                If flusso.CanWrite Then
                    If Size - Block >= 4096 Then
                        Reader.Read(Bytes, 0, 4096)
                        flusso.Write(Bytes, 0, 4096)
                    Else
                        Reader.Read(Bytes, 0, Size - Block)
                        flusso.Write(Bytes, 0, Size - Block)
                    End If
                End if
            Next
        Else
            Reader.Read(Bytes, 0, Size)
            flusso.Write(Bytes, 0, Size)
        End If
        Application.DoEvents()
        Reader.Close()
        send("END")
    End Sub
Ricezione file:

codice:
prgProgress.Maximum = 100
                prgProgress.Minimum = 0
                Dim Stream As New IO.FileStream(FileName, IO.FileMode.Create)
                aggiornaStato("File in arrivo...")
                Dim Index As Int64 = 0
                Application.DoEvents()
                Do
                    If Client.Available > 0 Then
                        Dim Bytes(Client.Available - 1) As Byte
                        Dim text As String = ASCII.GetString(Bytes)
                        If text.Contains("END") Or Index >= FileSize Then
                            Exit Do
                        End If
                        flusso(TextBox2.Text).Read(Bytes, 0, Bytes.Length)
                        Stream.Write(Bytes, 0, Bytes.Length)
                        Index += 4096
                        prgProgress.Value = (Index * 100 / FileSize)
                    End If
                Loop
                aggiornaStato("File ricevuto...")
                Stream.Close()
                Application.doevents()
Ripeto che in locale va tutto bene, i file sono sani e funzionanti; ma il problema si pone in remoto... i file inviati risultano danneggiati parzialmente... per esempio le immagini sono visibili parzialmente e infatti confrontando i byte delll'immagine inviata con quelli della ricevuta si nota subito come molti byte sono sostituiti da spazi vuoti!! come se parte dei byte si perdessero strada facendo...

Non capisco il perche di tutto ciò, quindi mi rivolgo a voi Attendo con anzia una vostra risposta

Cordiali saluti,

Hackaos