• Footballer (09.04.08 11:19) [0]
    Доброго времени суток.
    Как можно с компьютера-клиента отослать TStream на сервер, а с него ко всем клиентам по протоколу UDP? Проблема в том, что у компонента TIdUDPClient нет метода ClientRead (или как его там?).
    Спасибо.
  • clickmaker © (09.04.08 11:23) [1]
    значит, клиент должен стать сервером
    а какая задача-то в общем?
  • Footballer (09.04.08 11:28) [2]
    Я пишу программу для голосового общения по сети. А нужно отправлять заполненные буферы. С использованием TClientSocket всё нормально, но иногда прога зависает. Может быть на всех клиентах поставить по IdUDPServer'у? Я правильно думаю?
  • Сергей М. © (09.04.08 11:30) [3]

    > Footballer   (09.04.08 11:19)


    Ты в курсе, что UDP - протокол без гарантии доставки ?
  • clickmaker © (09.04.08 11:37) [4]

    > [2] Footballer   (09.04.08 11:28)

    так может, поразбираться в причине зависания?
  • Footballer (09.04.08 11:40) [5]
    Ну. во-первых, все подобные проги пересылают по UDP. (это точно, т.к. в настройках спашивают UDP порт).
    Во-вторых, UDP протокол не проверяет, дошли ли отправленные байты до получателя.
    Получается, UDP работает быстрее. Именно для голосового общения, так как всё равно будет прекрасно слышно если "немного байтов не дойдет"...
  • Footballer (09.04.08 11:41) [6]
    >Сергей М. ©   (09.04.08 11:30) [3]
    См. [5] =)
  • Сергей М. © (09.04.08 11:44) [7]

    > все подобные проги пересылают по UDP


    Не трынди, далеко не все.


    > UDP протокол не проверяет, дошли ли отправленные байты до
    > получателя ..UDP работает быстрее


    Да.


    > будет прекрасно слышно если "немного байтов не дойдет"


    Они могут дойти и все, но в неоригинальном порядке следования.
    Этот факт твой прикладной протокол учитывает ?
  • Footballer (09.04.08 11:49) [8]
    >Сергей М. ©   (09.04.08 11:44) [7]
    Не учитывает, но всё равно вероятность неоригинального порядка, имхо, мала. Тем более в сети с хорошим качеством соединния.
  • Сергей М. © (09.04.08 11:52) [9]

    > в сети с хорошим качеством соединния


    Т.е. ты предполагаешь, что твоя программа будет работать в пределах высокопроизводительной односегментной ЛВС ?
  • Сергей М. © (09.04.08 11:54) [10]

    > нет метода ClientRead (или как его там?)


    Зато есть ReceiveBuffer и ReceiveString
  • Footballer (09.04.08 13:57) [11]
    Но как его отловить-то???=)
    Ну ладно, всем спасибо. Особенно [clickmaker ©   (09.04.08 11:23) [1]]!
    Я всё понял, тема закрыта.
  • Сергей М. © (09.04.08 14:01) [12]

    > как его отловить-то?


    Кого ?!
  • Anatoly Podgoretsky © (09.04.08 16:00) [13]
    > Footballer  (09.04.2008 11:40:05)  [5]

    Раз для голосового общения, то надо смотреть не в сторону UDP, а multicast
  • Anatoly Podgoretsky © (09.04.08 16:01) [14]
    > Footballer  (09.04.2008 11:49:08)  [8]

    Не понял, ты что сначала накапливаешь весь текст потом его передаешь, иначе вероятность очень высока.
  • Anatoly Podgoretsky © (09.04.08 16:02) [15]
    > Сергей М.  (09.04.2008 11:52:09)  [9]

    А это тоже не спасение, если есть свичи.
Есть новые Нет новых   [134435   +34][b:0][p:0.001]