Поскольку большинство пользователей действительно заботятся о том, чтобы все их данные согласованно поступали на удаленную цель, лучше всего подойдет TCP, так как обработка ошибок пакетов управляется. UDP обычно лучше для приложений, где потеря приемлема (например, позиция игрока в играх), или когда повторная передача не возможна (например, потоковое аудио / видео).
Подробнее о потоковой передаче
В случае потокового аудио / видео данные всегда отправляются с некоторыми битами исправления ошибок, чтобы исправить большой процент ошибок. Конечная точка управляет дополнительным временем, необходимым для обнаружения (и, возможно, исправления) ошибок, путем буферизации потока. Тем не менее, очевидно, что это тонна работы (с обеих сторон), чтобы все это произошло, и, вероятно, не стоит того, чтобы передавать файлы P2P.
Обновление 1: комментарий о потоковом аудио
Ограничения действительно основаны на требуемой пропускной способности, задержке и частоте ошибок по битам ( BER ). Поскольку это, вероятно, оба мобильных устройства, возможно, работающих в сотовых сетях с двумя несущими, я бы выбрал UDP с очень высокой возможностью исправления ошибок для аудио. Пользователи, скорее всего, будут более недовольны отсутствием звука по сравнению со слегка искаженным звуком и большей задержкой. Тем не менее, я бы все равно использовал TCP для передачи файлов.