Одно-поточный FTP сервер

Тема в разделе "WASM.NETWORKS", создана пользователем int_13h, 14 июл 2009.

  1. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    Пишу ФТП сервер и как делается обычно - открыть порт, ждать, акцептить, создание треда для соединения, ну т. д. вот.. Канеш можно и сделать много поточный, но хочу сделать однопоточный FTP сервер - как это сделать, чёт туплю... прошу наставить на путь истинный ибо соображаю с трудом сейчас %)
     
  2. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    З. Ы. Всё разумеется на сокетах, готовые компоненты даже с ганжубасом не вставляют.. :-\
     
  3. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    если на виндах, то есть два пути:

    проще: асинхронные сокеты с events + WaitForMultipleObjects()

    сложнее: I/O completion ports
     
  4. maksim_

    maksim_ New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2009
    Сообщения:
    263
    помойму так лучше оконный мессаги юзать заместо WaitForMultipleObjects - более практично.
     
  5. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    maksim_ Ага красиво бы получилось - сообщение возвращает хендл соедиененя в параматрах, но прожка консольная, это немного ограничивает такие приёмы.
    s0larian хм.. сурцы хотелось бы глянуть или хотя бы примерную схему, что за чем дёргать в плане I/O completion ports?
    з. ы. так а на *никсах как?..
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    select/poll
     
  7. maksim_

    maksim_ New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2009
    Сообщения:
    263
    для того, чтобы юзать оконные мессаги не обязательно создавать видимые окна. тебе просто нужно зарегистрировать класс, создать окошко. затем вызываешь WSAAsyncSelect - по сути дела, регистрируешь callback функцию. у окошек стиль специальный есть для подобных дел - не помню как называется.
     
  8. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    maksim_ окна юзать всёрно как то не тру) прога ибо писалась с прицелом на порт для *БЗДей а много кода переписывать как правило влом...
     
  9. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    int_13h

    boost::asio. Тут тебе и I/O completion ports, и все остальные радости жизни.