Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinSock&&recv / 3 сообщений из 3, страница 1 из 1
30.03.2006, 20:07
    #33636259
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinSock&&recv
Есть функция на сервере, обрабатывающая каждое подключение в отдельном потоке:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
// Принимаем данные от клиента, посылаем ответ
	for (int count =  0 ; count< 20 ; count++)
	{
	
	// Принимаем размер
	recv(*sock,(char *)&LEN,sizeof(int), [b]0 );[/b]
	
	// Отправим подтверждение
	char* str = "OK";
	int size_ = send(*sock,str,(int)(strlen(str)+ 1 ), 0 );

	cout<<LEN<<endl;

	int mass =  0 ;
	int buff_size =  0 ;
		
	int count_byte =  0 ;
	
	while (buff_size < l)
	{
		count_byte = recv(*sock,(char*)&mass, 1 , 0 );
				
		
		buff_size+=count_byte;
	}
	
	cout<<"============================"<<endl;
	
	// отправим данные сокету
	size_ = send(*sock,str,(int)(strlen(str)+ 1 ), 0 );
	
	}

На 3-4 итерации recv(*sock,(char *)&LEN,sizeof(int),0); принимает в размере еще оставшиеся от основных данных значения. Как считать всю очередь, не зная количества данных?
...
Рейтинг: 0 / 0
31.03.2006, 20:52
    #33638668
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinSock&&recv
Принимай в цикле, до тех пор, пока recv возвращает значение большее нуля.
...
Рейтинг: 0 / 0
31.03.2006, 23:56
    #33638795
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinSock&&recv
Спасибо всем!!! Нашел ошибку в коде!!! Тема закрыта.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinSock&&recv / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]