Потоковая передача mp3-файла через асинхронный сервер / клиент

#c#

#c#

Вопрос:

У меня есть настройка сервера / клиента, которая использует асинхронные сокеты. Теперь я также хочу передать клиенту mp3, сохраненный локально на сервере. Я искал на форуме, но пока не нашел решения. Может ли кто-нибудь подтолкнуть меня в правильном направлении?

Если у кого-то есть вариант получше, то вышеуказанное не стесняйтесь комментировать 🙂

Заранее спасибо!

Комментарии:

1. Я думаю, у вас должен быть какой-то сервер, который может передавать потоковую передачу, например Flash Media Server или Windows Media Services, прежде чем пытаться передавать потоковую передачу файла .mp3.

2. Вы не упомянули архитектуру в своем вопросе, поэтому я (возможно, неправильно) принял позицию WCF в своем ответе. Если вы предпочитаете что-то другое, оставьте комментарий, и я скорректирую свой ответ. Если вы используете что-то автономное, например службу / приложение Windows без WCF, вы, вероятно, можете использовать NetworkStreams и добиться того же, что описано в моем ответе. Удачи!

Ответ №1:

Вы в значительной степени ответили на свой собственный вопрос с использованием терминов. 😉

Вы можете загрузить файлы *.mp3 с сервера в FileStream. Имея это в виду, вы, вероятно, можете догадаться и погуглить остальное, потоковая передача mp3 ничем не будет отличаться от передачи любого другого типа файла.

При передаче потоков возникает несколько сложностей, поэтому я настоятельно рекомендую вам просмотреть следующие пару ссылок:

Статья MSDN о передаче больших объемов данных с помощью WCF

Пример передачи файла службы WCF