Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > recv тормозит


Автор: rubenhak 28.1.2007, 21:19
У меня сервер на C#-е, клиенты на C# и C++. C# клиент работает четко.

Проблемма в следующем.
Когда количество передовамых данных становится большим C++ клиент 
с ума сходит - зависает recv, или select вылетает таимаутом, или
ioctlsocket(lhSocket, FIONREAD, &num_to_read) , выходит с 
num_to_read == 0. Когда данные уменьшаются, через некоторе время 
клиент нормализуется и нормально работает.

может проблемма в буфере передачи данных? 
но я пробовал менять, не помогает. 

в C#-е размер буфера 8192.

кстати, сокеты у меня блокирующие.


Автор: ptr 29.1.2007, 13:39
1. Неплохо было бы видеть код.
2. Трассировку использовать пробовал?

Автор: Goganchic 29.1.2007, 17:48
А может проблема в сервере: что он не может обработать такую интенсивность клиента, поэтому последний не получает какой-то инфы на свои запросы и ведет себя неадекватно?

Автор: rubenhak 31.1.2007, 01:58
ptr, Goganchic, 
спасибо, все было изза сервера, уже все исправил.
просто C# клиент был на сервере, а C++ на удаленном, поэтому на C#-е было все ок.

Автор: ptr 31.1.2007, 12:33
rubenhak, а тему решённой пометить?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)