здравствуйте надо переделать пргр на mam32 в пргр на C для linux. Появились вопросы: 1.Что лучше fork() или select() если сокетов до 10000. Есть ли ещё какой-нибудь способ, например как в win с посылкой FD_READ,FD_CLOSE... 2.можно ли некоторые функции не использующие WinApi вставить как obj PS : linux(frenzy(FreeBSD)) у меня будет только в субботу -> проверить самому нет возможности.
Consto Большинство виндовых API можно заменить на стандартные сишные эквиваленты (LIBC в *никсе). Обьектник в формате coff к *никсовому эльф-экзешнику врядли удастся прилинковать, хотя теоретически можно. Лучше один раз переписать всё на С, если реального обоснования использованию асма в данном случае нет. Или подогнать исходник под интеловский формат GAS и пересобрать всё этим самым GAS'ом. Но я бы советовал перейти на С.
там я нашёл только функции типа send, recv. меня интерисует аналог WSAAsyncSelect, в мне нравится kqueue(), но т.к. только под FreeBSD то не подходит, select ограничено FD_SETSIZE, значит получается только poll() ? нашёл у себя FASM, попрообую им перекомпилить
В таком случае тебя должны заинтересовать функции вида aio_xxx. Не только. NetBSD, OpenBSD, MacOS. Неверно, это дефолтовое значение, которое можно наращивать при необходимости. Но select - это опрос, а значит при большом кол-ве сокетов настанет жопа. В FreeBSD poll реализован так же как и select, подозреваю что в других системах примерно тоже самое. Если внимательно читать предложенный линк, то можно заметить упоминание про libevent, которая является лишь обёрткой для большинства интерфейсов (kqueue, epoll, poll, select); она достаточно компактна, и при желании можно написать полноценный аналог, конкретный же механизм будет выбираться в рантайме или при сборке (ну почти).
ага, только не понятно они вызываются без мессаджей, напрямую чтоли. надо делать accept'ный цикл и пока accept ждёт они могут вызваться или только во время aioPoll()? я не смог найти примеры, может у Вас есть ссылки на примеры.
Скомпиленная прога с WSAAsyncSelect имеет на 1 поток больше. Дальше хуже (любопытных прошу в отладчик отслеживать WSAAsyncSelect).... Используй select в отдельном потоке и будет WSAAsync gl