Конференция "Сети" » WSARecv или ReadFile?
 
  • Демо © (30.10.09 14:22) [20]

    > Polevi ©   (30.10.09 14:20) [19]
    > Я использую его модуль, проблем не было


    Проблема возникла при реализации WSAAccept с LPCONDITIONPROC.
  • Сергей М. © (30.10.09 14:25) [21]

    > Возможно ли на этом уровне уменьшить угрозу от SYN-атак?


    Нет.
    Этим должен заниматься файрвол.
  • Демо © (30.10.09 14:26) [22]
    В winsock2.pas:

    function WSAAccept( s : TSocket; addr : TSockAddr; addrlen : PInteger; lpfnCondition : LPCONDITIONPROC; dwCallbackData : DWORD ): TSocket; stdcall;



     TSockAddrIn = packed record
       case Integer of
         0: (sin_family : u_short;
             sin_port   : u_short;
             sin_addr   : TInAddr;
             sin_zero   : array[0..7] of Char);
         1: (sa_family  : u_short;
             sa_data    : array[0..13] of Char)
     end;
     PSockAddrIn = ^TSockAddrIn;
     TSockAddr   = TSockAddrIn;
     PSockAddr   = ^TSockAddr;
     SOCKADDR    = TSockAddr;
     SOCKADDR_IN = TSockAddrIn;



    Вот так работает:

     function WSAAccept(
       s: TSocket;
       addr:PSockAddr;
       addrlen: PInteger;
       lpfnCondition: LPCONDITIONPROC;
       dwCallbackData: DWORD): TSocket; stdcall; external 'ws2_32.dll';



    А описание структур взял из стандартного winsock.pas.
  • Демо © (30.10.09 14:27) [23]
    Всего-то один параметр...
  • Демо © (30.10.09 14:29) [24]

    > Сергей М. ©   (30.10.09 14:25) [21]
    > > Возможно ли на этом уровне уменьшить угрозу от SYN-атак?
    > Нет.Этим должен заниматься файрвол.


    Понятно. Значит не буду этим заморачиваться...
  • Сергей М. © (30.10.09 14:29) [25]

    > Всего-то один параметр


    Ну бывают маленькие неприятности, куда ж без них)
  • Демо © (30.10.09 14:29) [26]

    > > Всего-то один параметрНу бывают маленькие неприятности,
    >  куда ж без них)


    Ага... а я полдня бился над WSAAccept -))
  • Демо © (30.10.09 14:30) [27]
    Эх, если бы знать, что это единственный недочёт...
  • Сергей М. © (30.10.09 14:36) [28]

    > я полдня бился над WSAAccept


    Я встроил его в TIdCustomTCPServer за час.
    Лажа с параметром всплыла и была исправлена при первом же тестовом прогоне)
  • Демо © (30.10.09 14:39) [29]

    > Сергей М. ©   (30.10.09 14:36) [28]
    > > я полдня бился над WSAAcceptЯ встроил его в TIdCustomTCPServer
    > за час.Лажа с параметром всплыла и была исправлена при первом
    > же тестовом прогоне)


    А я, к сожалению, впервые использовал WSAAccept и понадеялся на портированный модуль, искал у себя ошибки.
  • Сергей М. © (30.10.09 14:43) [30]
    Ну выскажи Коншину своё "фи", если тебе от этого полегчает)
 
Конференция "Сети" » WSARecv или ReadFile?
Есть новые Нет новых   [134437   +30][b:0][p:0.002]