0
votes

I'm try to send string with TCP Socket. But the string is completely messed up.

My String :

Dim strMessage(10) As String
        strMessage(0) = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
        strMessage(1) = "Etiam imperdiet erat vitae elit faucibus, et accumsan est facilisis."
        strMessage(2) = "Duis elementum ante et quam sagittis molestie at ac nulla."
        strMessage(3) = "Pellentesque a metus eget metus aliquam pharetra in sed nibh."
        strMessage(4) = "Ut ut eros sit amet nisi consequat vulputate."
        strMessage(5) = "Fusce vel dui at purus laoreet consequat."
        strMessage(6) = "Donec sed erat lacinia, aliquam ante eu, pulvinar ligula."
        strMessage(7) = "Vestibulum posuere elit facilisis orci sagittis, id feugiat mi aliquam."
        strMessage(8) = "Donec sit amet lectus ut nibh pharetra dapibus ut vitae nulla."
        strMessage(9) = "Maecenas quis nunc scelerisque, cursus nibh tristique, pulvinar ipsum."

TCP Client Code :

 Dim stm As Stream
        Dim counter As Integer = 0
        Do
            stm = tcpClient.GetStream() 'getting the stream of the client
            Dim ascenc As New ASCIIEncoding
            Dim byteData() As Byte = ascenc.GetBytes(strMessage(counter))
            Thread.Sleep(2000)
            Console.WriteLine("Transmitted ")
            stm.Write(byteData, 0, byteData.Length())

            counter += 1

        Loop While counter < 10

TCP Server Code :

 Do
        Try
            Dim size As Integer = TcpSocket.Receive(bitData)
            Console.WriteLine(size.ToString)
            Dim newString As String
            'Dim chars(size) As Char

            'chars(i) = Convert.ToChar(bitData(i))
            newString = Encoding.ASCII.GetString(bitData)

            'Dim newString As New String(chars)
            Console.WriteLine(newString)
            strMessage(counter) = newString


            counter += 1

            If counter = 10 Then
                state = 2
            End If

        Catch ex As Exception
            Console.Write(ex.ToString())
        End Try
    Loop While state = 1

The result is :
This is the message you received: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
This is the message you received: Etiam imperdiet erat vitae elit faucibus, et accumsan est facilisis.
This is the message you received: Duis elementum ante et quam sagittis molestie at ac nulla.facilisis.
This is the message you received: Pellentesque a metus eget metus aliquam pharetra in sed nibh.ilisis.
This is the message you received: Ut ut eros sit amet nisi consequat vulputate.tra in sed nibh.ilisis.
This is the message you received: Fusce vel dui at purus laoreet consequat.ate.tra in sed nibh.ilisis.
This is the message you received: Donec sed erat lacinia, aliquam ante eu, pulvinar ligula.ibh.ilisis.
This is the message you received: Vestibulum posuere elit facilisis orci sagittis, id feugiat mi aliquam.
This is the message you received: Donec sit amet lectus ut nibh pharetra dapibus ut vitae nulla. aliquam.

1
This question looks awfully similar to this oneA Friend

1 Answers

0
votes

I would try using the Join command before sending it, then the Split after receiving it to put it back into an array.

That way you are only sending pure text - and that will be simpler.