Olá a todos, estou quebrando a cabeça faz uma semana com um código...
Tenho um client e um servidor, que se comunicam entre si pela porta 15963
Consigo me comunicar para troca de textos, ou seja, um bate-papo.
O código para envio é assim:
(PS: |SP| é o separador)
C.Send("TEXTO" & |SP| & cmptxt.text)
ao receber, ele irá separar em A(0) E A(1) (0 = CASE do texto, 1 = TEXTO)
Porém, ao tentar enviar arquivos, eu tentei de varias formas, ate mesmo um código que criei para um software de backup meu:
Try
Dim source = IO.File.Open(loadr, IO.FileMode.Open)
Dim bytesToRead As Integer = 1024
Dim bytesReaded As Integer = 0
Dim percent As Integer = 0
Dim totalBytesReaded As Int64 = 0
Dim tamanho As Integer = 0
While True
If (source.Length - source.Position) < 1023 Then
tamanho = (source.Length - source.Position) - 1
If tamanho < 0 Then
tamanho = 0
End If
bytesToRead = tamanho + 1
Else
tamanho = 1023
End If
Dim buffer(tamanho) As Byte
bytesReaded = source.Read(buffer, 0, bytesToRead)
If bytesReaded = 0 Then
source.Close()
Exit While
Else
totalBytesReaded += bytesReaded
C.Send("DOWNLOAD" & Yy & "ARQUIVO" & Yy & System.Text.ASCIIEncoding.ASCII.GetString(buffer))
C.Send("DOWNLOAD" & Yy & "PORCENTAGEM" & Yy & (totalBytesReaded / source.Length) * 100 & Yy & Path.GetFileName(loadr))
Thread.Sleep(1)
End If
End While
Catch ex As Exception
C.Send("VESH" & Yy & ex.Message)
End Try
Mas todos os arquivos enviados dessa forma acabam chegando corrompidos.
Já tentei usar o mesmo codigo, enfileirando cada buffer que chegava em ordem de um array, e logo depois juntando este array e transformando em bytes e escrevendo, mas ainda dá no mesmo.
Alguma dica?