Bluetooth байт txt файла увеличивается? - PullRequest
1 голос
/ 01 июня 2010

Я могу пересылать файлы с одного мобильного устройства на другое. Когда отправитель отправляет этот текстовый файл размером 8 байт, конец получателя становится текстовым файлом размером 256 байт, а когда я открываю содержимое текстового файла, у меня есть информация плюс множество квадратных прямоугольников. Вот мой код от отправителя:

            string fileName = @"SendTest.txt";
            System.Uri uri = new Uri("obex://" + selectedAddr + "/" + System.IO.Path.GetFileName(fileName)); 
            ObexWebRequest request = new ObexWebRequest(uri);

            Stream requestStream = request.GetRequestStream(); 
            FileStream fs = File.OpenRead(fileName);

            byte[] buffer = new byte[1024]; 
            int readBytes = 1;

            while (readBytes != 0) 
            {
            readBytes = fs.Read(buffer,0, buffer.Length);
            requestStream.Write(buffer,0, readBytes);
            }

            requestStream.Close();
            ObexWebResponse response = (ObexWebResponse)request.GetResponse();
            MessageBox.Show(response.StatusCode.ToString());
            response.Close();

Any1 Knws, как мне решить это?

Ответы [ 3 ]

1 голос
/ 01 июня 2010

Кажется, 256 байтов - это минимальный размер пакета в сеансе Bluetooth. Поскольку размер вашего файла меньше 256 байт, полезная нагрузка заполняется специальным символом. Попробуйте прочитать 256-байтовый массив до символа EOF (^ z), взять байты до EOF и сохранить на диск. Вам нужно сбросить полезную нагрузку.

0 голосов
/ 03 июня 2010

В любом случае, я решил ошибку, используя:

string fileName = @ "SendTest.txt";

String adr = "0025677FB346";

Uri uri = new Uri ("obex: //" + adr + "/" + System.IO.Path.GetFileName (fileName));

Запрос ObexWebRequest = новый ObexWebRequest (uri);

request.ReadFile (имя_файла);

ObexWebResponse response = (ObexWebResponse) request.GetResponse ();

MessageBox.Show (response.StatusCode.ToString ());

response.Close ();

0 голосов
/ 01 июня 2010

Итак, когда вы добавляете отладку в пример кода, добавляете дамп readBytes после вызова Read, что вы видите? 8 тогда 0 в одиночку?

На каком языке ваш файл? Западный язык или что-нибудь восточное, например?

Каково содержимое файла до и после? Какие байты добавляются и где?

...