У меня проблема с тем, чтобы сделать два приложения для отправки текстовых данных между собой.Сообщение передается без проблем, ответ тоже получен.Но в конце строки, отправляемой / получаемой с каждой стороны, есть много символов «Новая строка».Я думаю, это из-за того, что я читаю полный буфер;Я пытался удалить все Chr (10) и Chr (13);Я также попытался обрезать строку, но это не сработало.
Вот код, который я использую:
Клиентская сторона:
Dim cl As New TcpClient
cl.Connect("127.0.0.1", 2000)
Dim str As NetworkStream = cl.GetStream
Dim HelloInBytes As Byte() = Encoding.UTF8.GetBytes("Hello")
str.Write(HelloInBytes, 0, HelloInBytes.Length)
Dim Buffer(cl.ReceiveBufferSize) As Byte
str.Read(Buffer, 0, cl.ReceiveBufferSize)
Console.WriteLine(Encoding.UTF8.GetChars(Buffer))
Серверная сторона:
Dim srv As New TcpListener(IPAddress.Any, 2000)
srv.Start()
Dim cl As TcpClient = srv.AcceptTcpClient
Dim str As NetworkStream = cl.GetStream
Dim buf(cl.ReceiveBufferSize) As Byte
str.Read(buf, 0, cl.ReceiveBufferSize)
Dim res As Byte() = Encoding.UTF8.GetBytes("World")
str.Write(res, 0, res.Length)
Есть ли способ "очистить" полученную строку?
Спасибо за помощь.
РЕДАКТИРОВАТЬ: Решение: Работает с решением Harzcle.Я нашел другое решение, которое заключается в использовании этой функции в полученной строке:
Public Function CleanString(ByRef Str As String)
Return Str.Replace(Encoding.UTF8.GetChars({0, 0, 0, 0}), Nothing)
End Function
UTF8 работает на 4 байтах, и когда я читаю поток и помещаю его в буфер, если нет символа,4 байта остаются на значении 0.