Автор
|
Тема: 2Flex Ferrum
|
Valery |
опубликован 27-11-2001 16:09 MSK
В последний раз пристану с вопросом: что за библиотеку сокетов ты упоминаешь закрученную на stl::iostream ?
|
Flex Ferrum
|
опубликован 27-11-2001 16:15 MSK
А ты письмо разве не получил? Тады дублирую: Эту либу я наваял сам и сеть еще не выкладывал. Если интересно как такое сделать - пиши :)) Хотя, может быть, в сети можно найти что-нибудь подобное - задача слишком соблазнительная, чтобы ее не решить. Моежет быть сподоблюсь статейку черкануть на эту тему. |
Valery
|
опубликован 27-11-2001 16:24 MSK
Не-а. Письма нету. А мысль действительно дельная. От чего ушли (в Юниксах) к тому и вернуться. :) Поделись чем-нибудь для затравки. |
Valery
|
опубликован 28-11-2001 15:35 MSK
Ну так как? толкни мысль |
Flex Ferrum
|
опубликован 28-11-2001 16:25 MSK
Кгрхмм-гм (прочищаю горло :))... Для затравки - сделать сначала просто библиотеку классов для работы с сокетами. При этом реализоваить как клиентский сокет, так и серверный - библиотека должна обеспечивать все основные операции с сокетами - открытие, закрытие, чтение/запись, коннект/дисконнект и т. п. Серверный сокет у меня еще нагружается логикой запуска потока при подключении клиента. После того, как это сделаешь - придет пора заворачивать в stl. Там все проще - реализуешь класс-наследник от streambuf (все будет отвечать за операции чтения/записи в буффер/из буффера а также за буферизацию данных. Потом реализуешь наследника от iostream, который ничего не делает кроме как обеспечивает интерфейс к соответсвующему streambuf'у - создает его и инициализирует. Потом можешь растить либу дальше - реализовывать потоки для дотсупа по различным протоколам - HTTP, FTP и т. п. Тут все несколько более замороченней - необходимо сочетать буферизацию сокета с буферизацией потока. И так далее и тому подобное... Вот так. |
Valery
|
опубликован 28-11-2001 21:31 MSK
ага, вот только дальше сырых сокетов, то бишь в ftp, http, pop'ы всякие и т.д. я бы наверное уже не полез. это зарыться выше крыши в rfc-шки и из них уже не вылазить до конца жизни. для этого уже есть неплохие библиотеки. а вот первая часть при достаточной полезности достаточно проста (на первый взгляд :). |
Flex Ferrum
|
опубликован 29-11-2001 13:13 MSK
Я тоже сначала так подумал. Но потом, когда возникла необходимость обрабатывать потоки, полученные по протоколу HTTP/1.1 пришлось изменить свое мнение. |