Code:Private receivebuffer(1024) As Byte Private allbytesread As New List(Of Byte)This code works. Its missing some exception handling etc but it IS NOT good code can anyone suggest a way to improve it.Code:Private Sub gettcpdata(ByVal ar As IAsyncResult) Dim netstream As NetworkStream = CType(ar.AsyncState, NetworkStream) Dim numberofbytesread As Integer = netstream.EndRead(ar) If numberofbytesread = 0 Then Exit Sub 'Is there a more elegant way to do this below? '------------------------------------------------- ReDim Preserve receivebuffer(numberofbytesread - 1) allbytesread.AddRange(receivebuffer) ReDim receivebuffer(1024) '------------------------------------------------- While netstream.DataAvailable netstream.BeginRead(receivebuffer, 0, 1024, New AsyncCallback(AddressOf gettcpdata), netstream) End While 'Console.writeline below for debugging purposes only. Console.WriteLine("received:{0}", Encoding.ASCII.GetString(allbytesread.ToArray)) 'Raise an event to signal / send data back to main thread as a list of bytes not a string allbytesread.Clear() netstream.BeginRead(receivebuffer, 0, 1024, New AsyncCallback(AddressOf gettcpdata), netstream) 'keep on looping End Sub
Thanks
Adrian




Reply With Quote