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
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
Bedenke auch dass sich die tatsächliche Größe einer Datei von der Größe auf der Festplatte durch unterschiedliche Sektorgrößen unterscheiden kann.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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.
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.