| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > теоретический вопрос |
| Автор: jimbo 28.5.2010, 16:16 | ||
| привет всем.. я использую библиотеку стороннего разработчика. код показать не могу. Там есть методы у класса.
Этот класс соединяется с сервером и тот отдает ему данные. Сервер делает это непрерывно в течение всего дня. Сервер производит рестарт каждую ночь в 00-00.Разумеется, мой объект класса теряет связь при этом и я обрабатываю разрыв методами класса disconnect(); release(); create(); connect() login(); Все вроде бы хорошо, но через пару ночей я соединиться уже не могу. происходит коннект, логин и сразу же дисконнект. Мой вопрос собственно почему это может быть?Если приложение перезапустить - то оно сразу присоединиться и не будет дисконнектов. Меня также интересует, есть ли ограничение у приложений винды на количество выделяемых сокетов или времени работы сокетов? Можно ли понять где ошибка в библиотеке или в моем приложении? |
| Автор: jonie 28.5.2010, 22:39 |
| jimbo, netstat -an сделайте на вашей машине (на клиенте), у меня однажды было такое что соединения висели в time_wait и операционка отказывала в новых соединения (типа исчерпались ресурсы)... а в целом - читать про TCP.. (если у вас, конечно, вообще tcp) |
| Автор: Dem_max 30.5.2010, 06:16 |
| скорее всего ваша библа глючит и не делает release или disconnect, соединение или сокет остается занятым, поэтому ресурсы все у проги кончаются, винда новых не дает. |
| Автор: jimbo 31.5.2010, 11:56 | ||
Есть цифры? какой предел ресурсов винды? можно ли планку двигать? |
| Автор: borisbn 31.5.2010, 12:33 |
| > Есть цифры? какой предел ресурсов винды? Если не ошибаюсь, то в несерверной винде разрешено до 10 логинов на сервер. В серверной винде таких ограничений либо нет, либо на пару порядков больше |
| Автор: Dem_max 31.5.2010, 16:14 |
| есть даже патчер драйвера, можно увеличивать, до скольки незнаю. Но это не стандартный метод. |