Главная страница
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.023 c
3-33448
clickmaker
2003-08-21 15:42
2003.09.11
TTable.FindKey находит то, что не находит Locate


3-33500
Ник
2003-08-20 10:47
2003.09.11
DBASE


1-33536
dez
2003-09-01 19:03
2003.09.11
CoInitialize has not been called


1-33600
evgeny_krasilov
2003-09-01 11:30
2003.09.11
TOleContainer


14-33726
Basja
2003-08-25 09:49
2003.09.11
IRQ