Как правило, у вас будет звук, закодированный в каком-либо формате. Для простоты предположим, что это формат Wave.
Один из способов сделать это — инкапсулировать фрагменты аудио (скажем, фрагменты по 50 мс) для отправки по сети.
Однако вы не можете вслепую отправлять данные по сети и ожидать, что это сработает. На вашем компьютере данные могут быть организованы одним способом (с прямым или обратным порядком байтов), а на другом компьютере они могут быть организованы противоположным образом.
В этом случае клиент получит данные, которые он интерпретирует как совершенно отличные от того, что вы хотели. Итак, вам нужно как-то правильно сериализовать его.
После того, как вы правильно сериализуете данные (или нет, если оба компьютера используют один и тот же порядок следования байтов!), вы можете просто отправить() их и получить их(), а затем просто передать их декодеру для обработки.
Я хотел бы предложить больше информации, но это примерно то, что я знаю по этому вопросу. Это действительно зависит от того, что именно вы делаете, поэтому трудно дать какую-либо дополнительную информацию без некоторых подробностей относительно того, что вы делаете (например, в отношении аудиоформата).
Еще немного информации:
http://en.wikipedia.org/wiki/Сериализация
http://en.wikipedia.org/wiki/Endianness
Изменить: как указано в комментариях к этому ответу, вам, вероятно, вообще не следует беспокоиться о сериализации, если вы используете стандартный формат. Просто передайте его по сети порциями, которые может использовать ваш декодер (например, отправляйте кадр за раз), а затем декодируйте эти отдельные кадры (или, возможно, несколько кадров) на стороне клиента.
person
Mike Bailey
schedule
03.04.2011