Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Ограничение строки по сети
     
    
Добавлено: 16.11.11 07:35
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Sergey
      
       
  
Передаю от сервера клиенту такую строку:
 
    
Клиент, почему-то получает вот это:
Т.е. на несколько символов меньше. Думал, что дело вот в этом:
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
       
    
       
  
эту
 
    
выполни второй раз
		
	  
			 
	
		 
    
       
    
Номер ответа: 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