VB.NET TCP套接字编程-发送字符串数组

VB.NET TCP套接字编程-发送字符串数组,vb.net,sockets,tcp,Vb.net,Sockets,Tcp,我想做一个程序来实现TCP和UDP的套接字编程。 以下是流程: 1.我有一个包含10个字符串的字符串数组 2.Im使用TCP客户端程序将字符串数组发送到TCP服务器 3.我尝试将TCP服务器程序接收到的整个字符串发送到UDP 但问题是当我试图将一个字符串从TCP客户端发送到另一个字符串时。 这不是我所期望的 要发送到TCP服务器的字符串: Dim strMessage(10) As String strMessage(0) = "Lorem ipsum dolor sit ame

我想做一个程序来实现TCP和UDP的套接字编程。 以下是流程:
1.我有一个包含10个字符串的字符串数组
2.Im使用TCP客户端程序将字符串数组发送到TCP服务器
3.我尝试将TCP服务器程序接收到的整个字符串发送到UDP

但问题是当我试图将一个字符串从TCP客户端发送到另一个字符串时。 这不是我所期望的

要发送到TCP服务器的字符串:

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客户端代码:

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

我从程序中获得的字符串:
这是您收到的信息:Lorem ipsum dolor sit amet,Concertetur Adipising Elite。
这是您收到的信息:Etiam imperdiet erat Vita Elite faucibus,et accumsan est facilisis。
这是您收到的信息:在ac nulla.facilisis,两种元素在术前和术后的反应。
这是您收到的信息:在塞德·尼布·伊利西斯,佩伦特斯·埃吉特·埃吉特·梅特斯·阿利奎姆·法雷特拉(metus eget metus aliquam pharetra)。
这是您收到的信息:但我们的爱神坐在一个位于nibh.ilisis的网站上 这是您收到的信息:Fusce vel dui在purus laoreet consequat.ate.tra在sed nibh.ilisis。
这是您收到的信息:Donec sed erat lacinia,aliquam ante eu,pulvinar ligula.ibh.ilisis。
这是您收到的信息:前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭 这是你收到的信息:不要坐在我的讲台上,而不要坐在我的面前。阿利夸姆

tcp服务器得到的字符串,只是:9字符串,不是我想要的字符串

谢谢你的帮助
很抱歉我的语法不好。

您可以在每封邮件中添加一个邮件结尾字符,这样您就可以知道您已在服务器端阅读了整封邮件。如果计数器=9,则不应该是计数器=10,然后在处理邮件后增加计数器?
Dim bitData(100) As Byte
    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 = 9 Then
                state = 2
            End If

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