Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Ограничение строки по сети Добавлено: 16.11.11 07:35  

Автор вопроса:  Sergey
Передаю от сервера клиенту такую строку:
OK#11111111111111#Кречетников#Сергей#Викторович#администратор

Клиент, почему-то получает вот это:
OK#11111111111111#Кречетников#Сергей#Викторович#администра

Т.е. на несколько символов меньше. Думал, что дело вот в этом:

data = New [Byte](16384) {}

Но уже увеличил (раньше было и 1024 и 4048), но не помогает. Как передать по сети больше? Т.е. виноват клиент или сервер:
Сервер:

Dim msg As Byte() = System.Text.Encoding.Unicode.GetBytes(data)
                   stream.Write(msg, 0, msg.Length)
                   i = stream.Read(bytes, 0, bytes.Length)

Клиент принимает:

data = New [Byte](16384) {}
                    Dim responseData As [String] = [String].Empty
                    Dim bytes As Int32 = stream.Read(data, 0, data.Length)
                    responseData = System.Text.Encoding.Unicode.GetString(data, 0, bytes)

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 16.11.11 10:05
эту
  1. Dim bytes As Int32 = stream.Read(data, 0, data.Length)

выполни второй раз

Ответить

Номер ответа: 2
Автор ответа:
 Sergey



Вопросов: 4
Ответов: 5
 Профиль | | #2 Добавлено: 16.11.11 14:51
Т.е. второй раз? bytes уже-ж объявлена. Ошибка получается.

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 16.11.11 22:36
stream.Read не всегда читает длину которая была запрошена, он может считать меньше чем было запрошено. Нужно делать stream.Read до тех пор, пока не считается в сумме указанное кол-во байт.

http://www.yoda.arachsys.com/csharp/readbinary.html

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам