powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinSock&&recv
3 сообщений из 3, страница 1 из 1
WinSock&&recv
    #33636259
sever221mar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция на сервере, обрабатывающая каждое подключение в отдельном потоке:
Код: 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
WinSock&&recv
    #33638668
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Принимай в цикле, до тех пор, пока recv возвращает значение большее нуля.
...
Рейтинг: 0 / 0
WinSock&&recv
    #33638795
sever221mar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем!!! Нашел ошибку в коде!!! Тема закрыта.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinSock&&recv
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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