I seem to be reading in weird characters from the socket...
orginal string
"*HELLO*"

after i read in 1 byte this is what is stored in szData
"*

when i read in the next value
"H

and so on...

but only "* is copied accross to m_Message.

???

Confused

Code:
Public Class Client

    Private m_asynResult As IAsyncResult
    Private pfnCallBack As AsyncCallback
    Private m_socClient As Socket
    Private m_Message As String
    Private m_DataBuffer(0) As Byte
    Private m_IP As String

    Public Sub OnConnect()
      Dim ipAdd As Net.IPAddress = Net.IPAddress.Parse(m_IP)
      Dim iPortNo As Int16 = 8221
      Dim remoteEP As New Net.IPEndPoint(ipAdd, iPortNo)
      Try
        m_socClient = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        m_socClient.Connect(remoteEP)
        WaitForData()
      Catch ex As Exception
        MsgBox(ex.Message)
      End Try
    End Sub

    Private Sub WaitForData()
      Try
        If pfnCallBack Is Nothing Then pfnCallBack = New AsyncCallback(AddressOf OnDataReceived)
        m_asynResult = m_socClient.BeginReceive(m_DataBuffer, 0, m_DataBuffer.Length, SocketFlags.None, pfnCallBack, Nothing)
      Catch ex As Exception
      End Try
    End Sub

    Private Sub OnDataReceived(ByVal asyn As IAsyncResult)
      Try
        Dim iRx As Integer = 0
        iRx = m_socClient.EndReceive(asyn)
        Dim chars(iRx + 1) As Char
        Dim d As System.Text.Decoder = System.Text.Encoding.UTF8.GetDecoder()
        Dim charLen As Integer = d.GetChars(m_DataBuffer, 0, iRx, chars, 0)
        Dim szData As String = New System.String(chars)
        m_Message += szData
        WaitForData()
      Catch ex As Exception
        MsgBox(ex.Message)
      End Try
    End Sub

  End Class