|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Alexander Pevzner 2:5020/59.9 24 Aug 2000 23:01:17 To : luke@jet.msk.su Subject : Re: Как узнать, что сокет закрыли с другой стороны? -------------------------------------------------------------------------------- Hello, luke ! Thu, 24 Aug 00 13:10:39 +0400 you wrote to Alexander Pevzner: l> > Hу да, это SysV. В линухе оно есть, но явно по недоразумению. В BSD l> > нету (может быть эмуляция через select(), но она, как и сам select(), l> > не умеет делать то, что мне надо). l> Да ну? По какому-такому недоразмению? Или стоит напомнить, что l> select затыкается на 1024 дескрипторах? Если нет /dev/poll Это не свойство select()а, как такового, это свойство конкретной (конкретных) имплементаций. В самом по себе select()е, как и в fd_set'ах нет ничего такого, что ограничивало бы максимальное количество сокетов, с которыми можно работать. l> подобного интерфейса, то poll - единственный способ обработать l> толпу сокетов. И уж скорее select делают через poll, чем l> наоборот. И BSD он тоже есть, причём сто лет в обед как. Короче, l> резюмирую: что select что poll - оба непортабельны в одинаковой l> мере. Ты говоришь из общих соображений. А я посмотрел, как в glibc сделан poll(). Так вот, на BSD (и на старых линуксячих ядрах) он работает через select(). К сожалению, у меня нет под рукой более авторитетного источника, чем исходники glibc. Кстати, и еще маленький штрих в плане портабельности. select() есть везде, даже в виндузах. poll()а там нет... -- Wishes, Alexander Pevzner (pzz@pzz.msk.ru) --- ifmail v.2.14-tx8.10 * Origin: Private Node of Alexander Pevzner (2:5020/59.9@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/89751ad0d61a.html, оценка из 5, голосов 10
|