Помогите советом - передача данных

Тема в разделе "WASM.WIN32", создана пользователем xSoft, 22 окт 2008.

  1. xSoft

    xSoft New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    17
    Всем привет!

    Суть в следующем: есть два компа, на первом есть область памяти (hMem1, 200 Kb), которая постоянно изменяется. На втором есть аналогичная область памяти (hMem2, 200Kb), в которую через определенные промежутки времени необходимо копировать данные из hMem1 первого компа. Но копировать необходимо максимально быстро.

    Варианты?

    Пробовал Winsock - терпимо, но хотелось бы более скоростной вариант.
    Пробовал сделать через PIPE (именованные каналы) - при локальном тестировании(на одной машине, имя канала \\.\) передача практически мгновенная. Как только тестирую через сеть (имя канала \\имя_машины\) - максимальный размер буфера падает до 65535 и приложение-сервер подвисает.

    Можно ли сделать файл в памяти на сервере (CreateFileMapping) и копировать туда hMem1, а на машине клиента подключиться к этому файлу и читать напрямую?

    В общем помогите советом пожалуйста.
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Можете предоставить данные о скоростях?

    В частности, ширину канала ЛС и скорость передачи данных от одного компа другому методом сокетов..
     
  3. xSoft

    xSoft New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    17
    Машины соединены простым езернетом (100 мегабит) через простой хаб.
     
  4. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    TCP/IP - пиши прогу и оптимизируй socket operations (buffer size, nagle)
     
  5. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    А чем собсно UDP не устраивает?
     
  6. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Отсутствием контроля доставки?
     
  7. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    хорошо, а кто мешает открыть TCP и UDP соединение, и контролировать доставку ручками.
    P.S. Хотя если последние не отличаются прямотой и правильным месторасположением, то это не устранимая проблема!
     
  8. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    2FED
    можно и ручками сделать подтвержение доставки, по таймауту к примеру...
     
  9. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Exp10der +1 или TTL
     
  10. s0larian

    s0larian New Member

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

    Что за маразм пишите?

    P.S. TS забил уже на тему а вы всё добавляете коменты...
     
  11. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    да и можно собственный транспорт написать, по круче TCP/IP вообще на RAW сокетах чё уж там... глупо вообще - что TCP/IP, что UDP, что пайпы всё это одно и тоже скорость физического канала от этого не изменится - оптимизация кода есть истинна, имхо можно и на феррари ехать со скоростью 1 км/ч...
     
  12. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    да, но никто не мешает к феррари приклеить реактивный двигатель, а компу-то не приклеишь!
     
  13. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    ну это ещё как сказать... охлаждение жидким азотом и вперёд - делать из хм... пентиума 4 1,7 ГГц пентиум 4 - 3,5 ГГц...
    а вообще речь не о том.. оптимизировать, оптимизировать! и ещё раз оптимизировать! как завещал нам великий Ленин!.. канеш из 100 мбпс 1к не сделать.. но минимизировать потери при обработке вполне возможно.

    З. Ы. Сорри за лирическое отступление.
     
  14. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    а каковы они, ты хоть знаешь. при пропускной способности памяти в 8500-20000 Мб/с и пропускной способности шины ~10-30 Гб/с (цифры беру средние на данный момент. у моего компа память 17 Гб/с, проц 17,4 Гб/с судя по тестам из сандры 2007. это скорости передачи процессор-чипсет-память) и при способности проца обрабатывать этот поток данных? даже если очень захочешь, то и 100 Мб/с - это лишь часть возможности проца. даже если предположить, что ну очень не оптимальный код, то он вполне может забить 100 Мб канал и сосуществовать с 5-6 десятками других процессов!
    P.S. ну хорошо. вспомню про своего старичка P4, но даже у него в тестах 8,5 Гб/с проц и 6,4 Гб/с память. я только одного не понимаю, как можно написать так прогу, чтобы даже этого не хватило, для передачи потока данных?
    P.P.S. нет. ну хорошо. вспомню про своего старичка i486DX2, но даже у него (о боже) проц-память 400 Мб/с, правда там десятка стоит, и из нее вот уж точно 100 не сделаешь! и PCI там нет, только ISA, но уже тут...
     
  15. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    да прекрастно понимаю и знаю.. но можно написать и сетевую прогу которая и на 1 гбпс будет тормозить и глючить...
    [+] хотя канеш согласен. с оптимизачией сетевых прог погорячился... но компрессию буфера данных перед передачей по сетке сделать можно было бы во всяком случае....