Sammen sætte flere strings til en. Problemer med NetworkStream
Hejsa,Jeg har et mystisk problem. Jeg vil sammensætte flere strings til en enkelt. Normalt bruger jeg bare
str = str & str2
og det virker fint, jeg har også af og til brugt
strbuider.append(str)
uden problemer.
Mit problem er at jeg modtager et netstream som jeg gerne vil have til en lang string. Jeg bliver ved med at modtage data indtil jeg har modtaget en "CR" (ascii 13) og herefter en "LF" (ascii 10) hvorefter jeg returnere strengen. Så hvis jeg ikke modtager CR-LF i første buffer, så lytter jeg igen indtil det kommer..
her er min kode:
Private Function SendAndGet(ByVal pstr As String) As String
Try
Dim netStream As NetworkStream
Dim strBuilder As New StringBuilder("")
netStream = mtcpClient.GetStream()
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(pstr & vbCrLf)
netStream.Write(sendBytes, 0, sendBytes.Length)
Dim bytes(mtcpClient.ReceiveBufferSize) As Byte
Do While True
netStream.Read(bytes, 0, CInt(mtcpClient.ReceiveBufferSize))
Dim str As String = ""
Dim int As Integer = 0
While int <= bytes.Length - 1
If bytes(int) = 13 Then
If bytes(int + 1) = 10 Then
'MsgBox("yes we got a new line!")
Exit Do
End If
End If
int += 1
End While
strBuilder.Append(Encoding.ASCII.GetString(bytes))
Loop
Return strBuilder.ToString
Catch ex As Exception
RaiseEvent Log(gstrCriticalErr & ex.Message.ToString, LogLevels.Critical)
Return ""
End Try
End Function
Mit problem er at jeg modager den korrekte tekst via netstream, men jeg kan ikke tilføje den til min string.
Hvis jeg modtager flere "buffers" så tilføjes kun den første, jeg har prøvet alt. Så smide den i en tmp string og kontrollere at det er det rigtige der sendes, lave str=str&str2 men det hjælper heller ikke...
Jeg fatter det ikke, er der nogen af jer eksperter der kan give mig et hint..
Mvh..
Esben