Здравствуйте!Есть Select Socket Server на С++, к ниму подключаются клиенты.
Каждому клиенту пристаивается номер файлового дискриптора ID.
В линюксе у меня предел 1024. Удалось изменить эту цифру в самом сервере так:
#define FD_LIMIT = 2000
...
struct rlimit limit;
limit.rlim_max=FD_LIMIT;
limit.rlim_cur=FD_LIMIT;
if(setrlimit(RLIMIT_NOFILE, &limit)==-1) log("Error: unable to set limits\n");
проверял .. новые ID подключаются до 2000..
но как только достигается лимит 1024 и превышается возникают проблемы:
Все последующие подключения, даже с меньшими ID (если кто то дисконектился), после получения доли иформации отрубаются, а также сервер неполучает сигнала если клиент дисконектится..
Такое ощущение что сервер сам отправляет клиенту сигнал о завершении соединения.. а также неможет получить этот сигнал от клиента если клиент дисконнектит!
Может кто то встречался с этим? Посоветуйте что нибудь, может нужно что то ещё сделать? или другим способом увеличить число FD.