Ho trovato un esempio su internet che mi permette di creare due applicazioni una Server e l'altra Client che fa utilizzo di System.Net
Posso inviare una semplice stringa, un file di testo, ma quando cerco di inviare un altro tipo di file (esempio uno ZIP) non mi restituisce tutti i byte che gli invio. Nel mio caso ho detto di inviare solo i primi 24 Byte che effettivamente arrivano, ma poi me ne vengono restituiti 4, il codice che mi riceve i byte inviati dal client è:
codice:
Private Sub OnConnect()
Dim Client As System.Net.Sockets.Socket = Listener.AcceptSocket
Dim Buffer() As Byte
Try
Dim bi As Integer = 0
While Client.Available > 0
ReDim Preserve Buffer(bi)
Client.Receive(Buffer, bi, 1, Sockets.SocketFlags.None)
bi += 1
End While
Catch e As IndexOutOfRangeException
End Try
Dim message As String = System.Text.Encoding.Default.GetString(Buffer)
Dim REP As System.Net.IPEndPoint = Client.RemoteEndPoint
Client.Close()
Dim args As New InMessEvArgs(message, REP.Address.ToString())
RaiseEvent IncomingMessage(args)
End Sub
E' corretto il principio di aprire un file dal client ed inviare ogni singolo byte al server che poi mette tutti i byte ricevuti in un file? oppure sbaglio l'approccio.