Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

Передача файла   Найти похожие ветки 

 
seemann   (2003-07-07 00:17) [0]

Помогите решить проблему. У меня есть функция, которая постоянно записывает звук в поток мне нужно как можно быстрее передавать этот поток всем пользователям в сети, желательно не отправляя его сначала на сервер.


 
Digitman ©   (2003-07-07 09:05) [1]


> Помогите решить проблему


А в чем, собственно, проблема-то ?


 
seemann   (2003-07-07 13:02) [2]



> А в чем, собственно, проблема-то ?

А проблема в том, что нужно передать поток всем пользователям, не передавая его на сервер. Я так понял, что сокеты не подойдут для решения этой проблемы. Поэтому подскажите пожалуйста другой способ.


 
Digitman ©   (2003-07-07 13:20) [3]


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


разве это ПРОБЛЕМА ? это - ПОСТАНОВКА ЗАДАЧИ ! в ходе решения которой, возможно, возникает некая проблема)


> сокеты не подойдут для решения этой проблемы

на основании чего ты сделал это умозаключение ?
использование протокола UDP дает возможность реализовать бродкастинг (широковещательная рассылка)
есть и соответствующие гнездовые компоненты, которые создают и инициализируют гнезда, предназначенные для работы под протоколом UDP

см., например, TNMUDP в составе закладки FastNet


 
seemann   (2003-07-08 00:18) [4]

На этот раз ситуацию можно назвать проблемной. Я использую UDP (как посоветовали). Пишу:
NMUDP.SendStream(ms);
В результате ошибка адреса памяти (access violation). Подскажите что не так или дайте ссылку на документацию по использованию данного компонента.


 
Digitman ©   (2003-07-08 08:28) [5]

протокол udp имеет ограниченный размер отправляемого-принимаемого пакетного сообщения.
попытка передать поток, размер которого превышает установленный для udp-гнезда размер сообщения, как раз и вызывает в этом компоненте такое исключение.

размер udp-сообщения можно изменить, но этот размер все равно ограничен, поэтому следует разбивать поток на несколько потоков, размер каждого из которых не превышает установленного размера сообщения

читай http://book.itep.ru "Протокол UDP"


 
seemann   (2003-07-09 00:53) [6]

И всё же есть функция, которая постоянно записывает звук (функция callback), мне нужно передавать этот звук(размером приблизительно 50 килобайт) на удалённый компьютер. Тоесть нужно отправлять поток розмером 50Kb за один такт. Можно ли это осуществить?


 
Digitman ©   (2003-07-09 08:50) [7]


> нужно отправлять поток розмером 50Kb за один такт


что есть "за один такт" ? ни в протоколе UDP ни в Winsock нет понятия "такт".

в UDP есть понятие "сообщение" - блок данных фиксированного размера. блок отправляется вызовом sendto(), принимается recvfrom()


 
Snap ©   (2003-07-10 20:46) [8]

более того удп реализует максималную совместимость с протоколом интернета а в интернете как ты наверное знаешь болшие пакеты передавать нелзя. если бы все пересылали друг другу пакеты размера которого они сами захотят, то болшинство машин просто были не в состоянии что то передать так как трафик был ба забит пакетами 2-3 трех счастливчиков которые успели так сказать занать позиции.


 
Snap ©   (2003-07-10 20:48) [9]

к слову. Будет лучше и надёжнее если каждый твой юдп пакет не будет превышать полтора килобайт.



Страницы: 1 вся ветка

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
6-33716
der
2003-07-10 12:36
2003.09.11
DataSetPageProducer показывает только первую запись из Query


1-33574
Alex17
2003-08-28 16:59
2003.09.11
Ошибка при добавлении нового проекта в Project manager


1-33666
Aleksandr3
2003-09-01 12:56
2003.09.11
*.DCU


1-33675
kingdom
2003-08-29 15:46
2003.09.11
Как узнать полный путь к BPL ке из самой BPL ки.


9-33419
VEG
2003-03-08 12:26
2003.09.11
Режим эмуляции