2013-04-17 2 views
0

Я пытался выяснить, можно ли отправлять файлы между устройством wp8 и окнами rt (Surface). Некоторые люди, похоже, пишут, что это возможно, но они никогда не пишут, как это сделать.Отправлять файлы между wp8 и windows rt

Так что я хочу сделать 1. записать видео с моим приложением на устройство wp8 и сохранить его в изолированном хранилище (в это время я нахожусь в Im) 2. Отправьте видео (примерно 20 минут записи время) к моему устройству windows rt 3. Воспроизведите видео на устройстве rt. Шаг 1 & 3 просты, но шаг 2 сводит меня с ума. Я думал об использовании Bluetooth, но поскольку скорость составляет всего около 700 кбит/с, на перенос потребуется навсегда. Usb не работает, как в изолированном хранилище. Skydrive требуется 3g. Так что я думаю, это начать интернет-обмен на моем устройстве wp8, а затем подключить к нему мое устройство windows rt, а когда его сделать, используйте wifi для отправки видео с wp8 на win rt.

Есть ли способ, которым это может работать, или это невозможно?

ответ

2

Если ваши устройства находятся в одной сети Wi-Fi, вы можете использовать его для отправки файлов. Глянцевая над деталями, это может быть достигнуто в два этапа:

  1. Устройства обнаружат друг друга в сети (они должны знать IP-адреса друг друга).
  2. Внедрение отправки файлов через сокет tcp. Самый простой способ - разбить файл на куски какого-то произвольного, но небольшого размера и отправить эти куски один за другим.

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

EDIT:This url говорит, что есть возможность прослушивать входящие сетевые подключения, так как связанный класс доступен для приложений Windows Store и Windows Phone 8. Вы можете использовать его в качестве отправной точки.

EDIT 1: Я быстро привел пример для вас, чтобы доказать, что он работает. Просто тестировал на моем Lumia 920.

Windows.Networking.Sockets.StreamSocketListener listener = new Windows.Networking.Sockets.StreamSocketListener();      
listener.ConnectionReceived += async (_, args) => 
{ 
    var w = new Windows.Storage.Streams.DataWriter(args.Socket.OutputStream); 
    w.WriteInt32(42); 
    await w.StoreAsync(); 
}; 
await listener.BindEndpointAsync(new Windows.Networking.HostName("127.0.0.1"), "55555"); 
var clientSocket = new Windows.Networking.Sockets.StreamSocket(); 
await clientSocket.ConnectAsync(new Windows.Networking.HostName("127.0.0.1"), "55555"); 

var r = new Windows.Storage.Streams.DataReader(clientSocket.InputStream); 
await r.LoadAsync(4); 
var res = r.ReadInt32(); 
clientSocket.Dispose(); 
System.Windows.MessageBox.Show(res.ToString(), "The Ultimate Question of Life, the Universe, and Everything", System.Windows.MessageBoxButton.OK); 
+0

Это звучит весьма интересно, я искал какой-нибудь способ, чтобы начать с этим, но я только нашел, как это сделать с сервером вовлеченного и ни WP8 или WinRT может быть сервером , Поэтому, если бы вы могли указать мне на некоторые уроки или просто некоторые функции для использования, это было бы здорово! – user1842278

+0

Этот, похоже, работает, спасибо! – user1842278

+0

Было замедленное редактирование ... Теперь я открываю изолированный поток и читаю 512 байт в то время, а затем отправляю их с помощью datawriter.На стороне приемника я использую Partial configuration, а затем прочитал непрочитанные данные с помощью LoadAsync (UnconsumedBufferLength). Затем мне нужно пройти через LoadAsync, пока у меня не будет загружено 0 байтов? – user1842278

0

Это что-то, что вы пытаетесь сделать в коде? Каков ваш средний размер файла - мы говорим о низком разрешении 320x480 или HD-качестве 720p + видео ...? Каковы ваши ограничения? (Время, подключение и т. Д.)

Чтобы сделать передачу, вы можете настроить Dropbox. Свободная версия ограничена в пространстве (больше, если вы делитесь ею), но если вы переместили файлы в Dropbox по мере необходимости, вы, по крайней мере, сможете ее установить и забыть об этом. Это все равно потребует сетевого подключения, поэтому, если вам нужно сделать это в пути, это может быть не очень хороший ответ.

Если это то, что вам нужно делать во время отпуска в Мир Диснея или в кемпинге или что-то в этом роде, это не может быть жизнеспособным вариантом.

Смежные вопросы