Конференция "Сети" » WSARecv или ReadFile?
 
  • Демо © (29.10.09 23:56) [0]
    В WinSock2 появились новые функции - WSARecv и WSASend.
    Как я понимаю, кроме кроссплатформенности они ничем не лучше старых ReadFile и WriteWile.

    Просьбы высказать мысли по этому поводу.
    Имеются ли какие-то преимущества у новых функций?
  • Демо © (30.10.09 00:00) [1]
    PS. Использую перекрытый ввод/вывод с IOCP.
  • Сергей М. © (30.10.09 00:19) [2]

    > кроме кроссплатформенности


    Какая к лешему "кроссплатформенность", если  WinSock ?)
  • Демо © (30.10.09 00:24) [3]

    > Сергей М. ©   (30.10.09 00:19) [2]
    > > кроме кроссплатформенностиКакая к лешему "кроссплатформенность",
    >  если  WinSock ?)


    -)

    Ну да. сорри.
    Кроссплатформенностью с дуру назвал разные версии winddows.
  • Демо © (30.10.09 00:25) [4]
    И всё же?
  • Сергей М. © (30.10.09 00:34) [5]

    > с дуру


    Пишется слитно.


    > И всё же?


    На параметр lpFlags поглазей)
  • Сергей М. © (30.10.09 00:47) [6]

    > назвал разные версии winddows


    Все версии новее 3.11 так или иначе поддерживают WS2.
  • Демо © (30.10.09 01:30) [7]

    > На параметр lpFlags поглазей)


    А он для семейства протоколов TCP имеет значение?
  • Сергей М. © (30.10.09 08:14) [8]
    Имеет.
    Не только, но и в том числе.
  • Демо © (30.10.09 12:46) [9]
    Судя по MSDN, флаг lpFlags может быть комбинацией из трёх бит:

    MSG_PEEK
    MSG_OOB
    MSG_PARTIAL

    Для поточно-ориентированных сокетов остаётся только MSG_PEEK и MSG_OOB.

    Конечно, это плюс к WSARecv.
    Спасибо за наводку.

    Есть ли кроме этого плюсы?
  • Сергей М. © (30.10.09 12:52) [10]

    > Есть ли кроме этого плюсы?


    А разве этого не достаточно ?
    Ведь Read/WriteFile[Ex] не даст тебе такой функциональности, если она требуется..
  • Демо © (30.10.09 12:56) [11]

    > Сергей М. ©   (30.10.09 12:52) [10]
    > > Есть ли кроме этого плюсы?А разве этого не достаточно
    > ?Ведь Read/WriteFile[Ex] не даст тебе такой функциональности,
    >  если она требуется..


    Спасибо, Сергей.
    Как раз вот на эту инфу с флагом не обратил внимания.
  • Сергей М. © (30.10.09 13:03) [12]
    И опять же касаемо кроссплатформенности - как раз по этим соображениям не следует пользовать ни WSA-функции ни Read/WriteFile.

    Только send[to]/recv[from] - они обязаны присутствовать на любой платформе, поддерживающей базовую функциональность гнезд Беркли.
  • Демо © (30.10.09 13:49) [13]

    > Сергей М. ©   (30.10.09 13:03) [12]
    > И опять же касаемо кроссплатформенности - как раз по этим
    > соображениям не следует пользовать ни WSA-функции ни Read/WriteFile.
    >


    Ну что касаемо кроссплатформенности - тут у меня проблем нет.
    Проект будет работать на платформе Windows.

    Поэтому свой выбор сделаю всё-таки в пользу WSA-функций, видимо.
  • Polevi © (30.10.09 14:00) [14]
    WSA позволяют работать с цепочкой буферов, иногда это удобно
  • Сергей М. © (30.10.09 14:06) [15]
    + к [14]

    WSAAccept позволяет организовать настоящее условное акцептирование запросов на соединение
  • Демо © (30.10.09 14:10) [16]

    > Polevi ©   (30.10.09 14:00) [14]
    > WSA позволяют работать с цепочкой буферов, иногда это удобно


    У меня не будет обмена данными большого размера, планируется обмен короткими пакетами.

    На сервере хочу предусмотреть возможность работы под хорошей нагрузкой, поэтому SOCKET IO OVERLAPPED + IOCP.
    На клиенте можно попроще - просто SOCKET IO OVERLAPPED.

    Конечно, не факт, что сервер будет очень уж популярен, но предусмотреть нужно.

    Просто наконец-то взялся за проект, который мечтаю уже 10 лет сделать.
    Надеюсь, что наконец-то воплощу в реальность.
  • Демо © (30.10.09 14:11) [17]

    > Сергей М. ©   (30.10.09 14:06) [15]
    > + к [14]WSAAccept позволяет организовать настоящее условное
    > акцептирование запросов на соединение


    WSAAccept я уже реализовал именно таким способом.

    Вопрос по этому поводу:

    Возможно ли на этом уровне уменьшить угрозу от SYN-атак?
  • Демо © (30.10.09 14:12) [18]
    PS.
    Обнаружил ошибки в портированном WINSOCK2.PAS от Алексея Коншина...
  • Polevi © (30.10.09 14:20) [19]
    Я использую его модуль, проблем не было
 
Конференция "Сети" » WSARecv или ReadFile?
Есть новые Нет новых   [134439   +32][b:0][p:0.001]