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

Discussion in 'WASM.WIN32' started by xSoft, Oct 22, 2008.

  1. xSoft

    xSoft New Member

    Blog Posts:
    0
    Joined:
    Jul 12, 2006
    Messages:
    17
    Всем привет!

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

    Варианты?

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

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

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

    Magnum New Member

    Blog Posts:
    0
    Joined:
    Dec 29, 2007
    Messages:
    925
    Можете предоставить данные о скоростях?

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

    xSoft New Member

    Blog Posts:
    0
    Joined:
    Jul 12, 2006
    Messages:
    17
    Машины соединены простым езернетом (100 мегабит) через простой хаб.
     
  4. s0larian

    s0larian New Member

    Blog Posts:
    0
    Joined:
    Jul 15, 2004
    Messages:
    489
    Location:
    Крыжёпполь
    TCP/IP - пиши прогу и оптимизируй socket operations (buffer size, nagle)
     
  5. Exp10der

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

    Blog Posts:
    0
    Joined:
    Aug 27, 2007
    Messages:
    337
    Location:
    Красноярск
    А чем собсно UDP не устраивает?
     
  6. 2FED

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    Отсутствием контроля доставки?
     
  7. max7C4

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    1,203
    хорошо, а кто мешает открыть TCP и UDP соединение, и контролировать доставку ручками.
    P.S. Хотя если последние не отличаются прямотой и правильным месторасположением, то это не устранимая проблема!
     
  8. Exp10der

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

    Blog Posts:
    0
    Joined:
    Aug 27, 2007
    Messages:
    337
    Location:
    Красноярск
    2FED
    можно и ручками сделать подтвержение доставки, по таймауту к примеру...
     
  9. max7C4

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    1,203
    Exp10der +1 или TTL
     
  10. s0larian

    s0larian New Member

    Blog Posts:
    0
    Joined:
    Jul 15, 2004
    Messages:
    489
    Location:
    Крыжёпполь
    ...ну а потом и масштабируемое окно и доставку внеочередную ещё дописать. Ба, це ж TCP!

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

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

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

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

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    1,203
    да, но никто не мешает к феррари приклеить реактивный двигатель, а компу-то не приклеишь!
     
  13. Exp10der

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

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

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

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    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 Мастер дзена

    Blog Posts:
    0
    Joined:
    Aug 27, 2007
    Messages:
    337
    Location:
    Красноярск
    да прекрастно понимаю и знаю.. но можно написать и сетевую прогу которая и на 1 гбпс будет тормозить и глючить...
    [+] хотя канеш согласен. с оптимизачией сетевых прог погорячился... но компрессию буфера данных перед передачей по сетке сделать можно было бы во всяком случае....