| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Аналог скайпа...прошу совета.. |
| Автор: tonchitos 11.4.2007, 00:30 |
| Я буду ваять курсовик. Хочу сделать куцый аналог скайпа. То есть перехватывать голосовые сообщения, шифровать их и передавать, а там, соответственно получать и тд. Ну и еще чего нить к нему приделаю...но это уже в процессе.. Но я в сетевом программировании нолик. Посоветуйте, что мне нужно освоить для решения этой задачи..Программирую на Visual C++(знаю апи и мфс). Время на курсовик у меня - два месяца(я успею разобраться, да? Жду любых советов подсказок и мыслей. Заранее всем спасибки.. Добавлено через 3 минуты и 27 секунд И ссылочки кидаааайте, да побоооольше! |
| Автор: azesmcar 11.4.2007, 08:47 | ||
| Скайп использует технологию VoIP (Voice Over IP). Короче говоря это не самое простое что можно придумать для курсовой. Для начала ты должен выбрать для себя какой нибудь протокол, хотя в принципе если тебе нужно чтоб пользователи могли общатся только через твою программу это не обьязательно. Можешь придумать свой. Но если подойти к делу серьезно, то нужен протокол. На данный момент http://www.ietf.org/rfc/rfc3261.txt наилучший вариант. Хотя с протоколом http://www.packetizer.com/voip/h323/standards.html микрософт облегчит тебе путь (смотри TAPI - Telephony Application Programming Interface ). Кроме этого нучно изучить механизм передачи голоса по интернет, т.е. алгоритм преобразования Analog-Digital. Алгоритм смотри здесь http://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Также почитай описание технологии VoIP
|
| Автор: tonchitos 11.4.2007, 13:44 |
| Спасибо....а..я за два месяца успею? Как думаете? И еще, люди, ссылочки то на русском кидайте...а то на инглише у мя скорость чтения ниже в 10 раз, неудобно оч. |
| Автор: Бонифаций 11.4.2007, 13:49 |
| если писать с нуля - два месяца слишком мало В качестве отправной точки посмотрите исходники twinkle (его можно собрать совсем без GUI), и проект ccrtp |
| Автор: tonchitos 11.4.2007, 13:59 | ||||
Да мне не важно, какую технологию использует скайп, мне нужно написать прогу, которая перехватывает звук у микрофона, шифрует(как любой файл), передает, принимает, расшифровывает,ну тож самое можно делать и с текстом.
Поэтому если есть простая технология, то советуйте. |
| Автор: azesmcar 11.4.2007, 14:37 | ||||||||||
Что-то не припоминаю чтобы RFC на русском писали
не сходится
Аналог скайпа означает что ты сможешь звонить не только на компьютер но и на обычный домашний телефон..т.е. IP Телефония. Если нет, тогда тебе просто нужен Voice Chat. Правда это не особо облегчит твое дело, все равно АЦП звука придется писать.
Очень простая технология...записываешь звук, преобразовываешь и посылаешь серверу. С нуля за 2 месяца не напишешь, особенно если не знаком с VoIP. Лучше посмотри на уже готовые решения
попробуй реализовать используя TAPI (в этом случае можешь в качестве клиента использовать Phone Dailer), или пересмотри тему курсовика. |
| Автор: witex 12.4.2007, 15:04 | ||
| я думаю полный аналог скайпа не нужен, потому что он то не сразу VOIP использовал! и на простые телефоны только через пару лет звонить начал! вообьще лудще простой аналог сетевой звонилки сдеть вот и всё! идин к одному! Естественно в асинхронном режиме! потому что так синхронном будет смещение звука и искожение! преоброзовывать советую в МП3 формат и посылатть однин паккет с его контрольной суммой МД5! будет проще. и надёжно! а шифрование зачем тебе я не понимаю!
в скайпе звук не посылается серверу! он послыется сразу абоненту! сервер только следит за тем кто в онлайне! сервером только становиться тот кто звонит! а ваабще если посмотреть , на коференцию в скайпе то там даже если организатор в офлайн удёт она будет жить! так что Скайп сервер следит только за тем, если звонок или нету! и ни чего более! остальное всё передаётся P2P- |
| Автор: AndreyK 13.4.2007, 19:44 |
| Я бы воспользовался обычным API открываем: waveInOpen waveInStart записываем в буфер: waveInPrepareHeader waveInAddBuffer waveInUnprepareHeader по мере записи передаём по сети обычным send принимаем в буфер recv открываем: waveOutOpen проигрываем: waveOutWrite где-то есть готовые примеры ... |
| Автор: AndreyK 16.4.2007, 15:12 |
| Есть альтернативный вариант: Берём какую нибудь программу, которая всё это может (например до XP был NetMeeting , а теперь ,наверное, какая ни будь другая утилита винды может) и используем его для передачи звука по сети, через встроенный в него интерфейс. Надо только в инструкциях разобраться... |