Laden...

Datentransfer 1kb per Bluetooth via SPP

Erstellt von Nava vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.443 Views
N
Nava Themenstarter:in
29 Beiträge seit 2009
vor 9 Jahren
Datentransfer 1kb per Bluetooth via SPP

Hallo,

Ich versuche gerade 1kb per BT via SPP an einen Testserver zu senden welchen ich in C# mit 32feet.net aufgesetzt habe.

Die Verbindung ist PC BT Dongel zu Android Handy.
Ich versende eine Datei von Handy die genau 1024 byte hat, Ich lese aber auf meinem Server immer nur 985 Byte aus.
Ich habe die empfangenen Daten überprüft und diese sind vollständig vorhanden.

Ich habe mir die Datei mit dem Hex-Editor angeschaut und diese hat genau 1024 byte.

Schon jemand mal mit dem Phänomen Bekanntschaft gemacht?

Anbei noch mein Code:

static void Main(string[] args)
        {
            Guid MyServiceUuid = new Guid("{00001101-0000-1000-8000-00805f9b34fb}");
   
            string OurServiceName = "32feet.NET Test";
            BluetoothListener _bluetoothlistener = null;
            BluetoothClient _bluetoothclient;
            int bytesrecieved = 0;
            _bluetoothlistener = new BluetoothListener(MyServiceUuid);
            _bluetoothlistener.ServiceName = OurServiceName;
            _bluetoothlistener.Start();
            _bluetoothclient = _bluetoothlistener.AcceptBluetoothClient();
            NetworkStream peerStream = _bluetoothclient.GetStream();
            do
            {
                byte[] buffer = new byte[1];
                if (peerStream.DataAvailable)
                {
                    int byteread = peerStream.Read(buffer, 0, 1);
                    bytesrecieved++;

                    string wert = ASCIIEncoding.ASCII.GetString(buffer);
                    Console.WriteLine(DateTime.Now.ToLongTimeString() + ": " + bytesrecieved + " Wert:" + wert);
                    
                }
            } while (true);

            Console.ReadLine();
        }

Gruß,
Nava

N
Nava Themenstarter:in
29 Beiträge seit 2009
vor 9 Jahren

Hallo,

Ich habe etwas weiter geforscht und die versendete Datei auf die Festplatte gespeichert und mit dem HEX Editor verglichen.

Und Siehe da, mir geht ein Zeichen verloren.

Ursprungsdatei:
0D0A7C7C
Nach dem Versand:
0A7C7C77

Ich verliere einen Teil des Zeilenumbruchs.

Meine Vermutung ist nun das die Ursache Betriebssystem bedingt ist unter Linux (Android) ist der Zeilenumbruch \n ist und unter Windows \r\n.

Mein Fazit ist ich brauch eine bessere Testdatei welche keine Zeilenumbrüche hat.

Gruß,
Nava

16.834 Beiträge seit 2008
vor 9 Jahren

Bedenke auch dass sich die tatsächliche Größe einer Datei von der Größe auf der Festplatte durch unterschiedliche Sektorgrößen unterscheiden kann.

N
Nava Themenstarter:in
29 Beiträge seit 2009
vor 9 Jahren

Ja, das ist klar.
Mir geht aber um die Bewertung der BT Verbindung.

Mit fällt aber aktuell keine bessere Methode ein als Dateien mit fester Größe zu versenden und die Übertragungszeit/Datenrate zu bewerten.

4.939 Beiträge seit 2008
vor 9 Jahren

Hallo,

wenn du 1:1 die Datei übertragen möchtest, dann solltest du die Datei im Binärmodus öffnen (Standard ist der Textmodus, wo z.B. unter Windows /r/n durch /n ersetzt wird) und übertragen.