Конференция "Сети" » Сервер на TIdTCPServer из Indy10 [D7, WinXP]
 
  • RGV © (10.09.11 06:41) [40]

    > RGV ©   (10.09.11 03:46) [39]

    Может не совсем грамотно выразился, но думаю смысл понятен.


    > DVM ©   (09.09.11 10:38) [31]

    Пытаюсь разобраться в работе TWSocketServer из ICS
    там есть такое свойство MultiThreaded, она включает многопоточность? Т.е все события у TWSocketClient вызываются из их собственного потока? и скорее всего эти события вызываются без Synchroninize.

    Спасибо за вашу помощь.
  • Eraser © (10.09.11 16:06) [41]
    > [29] DVM ©   (08.09.11 23:25)

    очень даже подходит, для клиентов уж точно. для сервера тоже подойдет, если клиентов не тысячи. а касаемо асинхронности - просто нужно четко разделить работу с сетью и остальную логику работы программы, в т.ч. UI. соединение должно быть в отдельном потоке и работать с очередью сообщений, посылаемых из UI и остальной части программы.
  • DVM © (10.09.11 16:29) [42]

    > Eraser ©   (10.09.11 16:06) [41]


    > очень даже подходит

    Выделять цельный поток для каждого из, скажем, 1000 клиентов, большинство из которых 99.99% времени ничего не передают - расточительно.


    > RGV ©   (10.09.11 06:41) [40]

    Там же вроде примеры есть? Многопоточность тебе не нужна.
  • Eraser © (10.09.11 19:46) [43]
    > [42] DVM ©   (10.09.11 16:29)

    если сервер расчитан на тысчи клиентов, то там ни Indy, ни ICS не подойдет. А для клиентов очень даже подходит.
  • DVM © (10.09.11 20:21) [44]

    > Eraser ©


    > если сервер расчитан на тысчи клиентов, то там ни Indy,
    > ни ICS не подойдет.

    ICS несколько тысяч потянет. Используя порты завершения ввода-вывода можно и десятки тысяч обслужить (не знаю, использует ли ICS IOCP). Потоков более чем ядер смысла создавать в такой ситуации нет.


    > А для клиентов очень даже подходит.
    >
    >

    Да подойти то подойдет, но самый примитивный вариант асинхронных сокетов на сообщениях для клиента чата проще в реализации и синхронизация не нужна с интерфейсом.
  • Anatoly Podgoretsky © (10.09.11 21:15) [45]
    > Eraser  (10.09.2011 19:46:43)  [43]

    ICS нормально справляется с десятками тысяч клиентов
  • Eraser © (10.09.11 22:42) [46]
    > [44] DVM ©   (10.09.11 20:21)


    > [45] Anatoly Podgoretsky ©   (10.09.11 21:15)

    обычно просто середины не бывает. либо сервер обслуживает несколько десятков клиентов и не больше, либо сервер должен потянуть и десятки тысяч. в этом случае да - только порты завершения. В ICS увы не используются. Вот если бы Indy или ICS написали хотя бы простенький сервер на базе IOCP - цены бы им не было. Есть неплохой компонент, автором которого является наш форумщик, но к компоненту есть ряд вопросов.
  • DVM © (10.09.11 23:21) [47]

    > Eraser ©   (10.09.11 22:42) [46]


    > Есть неплохой компонент, автором которого является наш форумщик,
    >  но к компоненту есть ряд вопросов.

    Этот?

    THPServerSocket
    Author: Sergey N. Naberegnyh
  • Eraser © (11.09.11 03:07) [48]
    этот.
  • RGV © (11.09.11 08:33) [49]
    Спасибо за советы и помощь.
 
Конференция "Сети" » Сервер на TIdTCPServer из Indy10 [D7, WinXP]
Есть новые Нет новых   [134435   +13][b:0.001][p:0]