Не могли бы вы объяснить, почему окно вывода не печатает часть строки «xxxxx»? Похоже, я что-то упускаю из виду...?
Я отправляю строковые сообщения через TcpClient, и при создании строк я не добавляю никаких специальных символов ни на стороне отправителя, ни на стороне получателя. Это часть проблемы?
http://i56.tinypic.com/9lg7pi.png
ИЗМЕНИТЬ:
Я строю свои строки на стороне отправителя следующим образом:
Private Sub SendData(ByVal stringArray As String())
SendData(GetMessageString(stringArray))
End Sub
Public Function GetMessageString(ByVal array As String()) As String
Dim str As String = ""
For i = 0 To array.Length - 1
str = str & array(i)
If i < array.Length - 1 Then
str = str & "|"
End If
Next
Return str
End Function
А на принимающей стороне строится переменная:
client.GetStream.BeginRead(readBodyBuffer, 0, MESSAGE_BODY_LENGTH, New AsyncCallback(AddressOf ReadBody), Nothing)
...
Private Sub ReadBody(ByVal aread As IAsyncResult)
BytesRead = client.GetStream.EndRead(aread)
...
' Read (add) into buffer
messagePart = Encoding.ASCII.GetString(readBodyBuffer)
messagePart = messagePart & "xxxxx"
ИЗМЕНИТЬ 3
Моей простой ошибкой было неправильное использование Redim массива байтов: (параметр 10 дает 11 элементов)
Неправильный:
ReDim readBodyBuffer(MESSAGE_BODY_LENGTH)
Правильный:
ReDim readBodyBuffer(MESSAGE_BODY_LENGTH - 1)