2016-07-05 2 views
1

Ich erstelle eine Anwendung in Windows Mobile und auf Android, um eine Datenübertragung zwischen ihnen über Socket-Stream herzustellen. Ich habe die Programmierung in Android abgeschlossen. Ich konvertierte das Bild in Byte-Array in Android und senden Sie es Stream.Bild mit Datenreader-Klasse über Socket-Stream lesen

Ich weiß nicht, wie man es in DataReader-Klasse in Windows 10 Mobile liest. Wenn irgendwelche gute Beispiele dort sind, lass es mich wissen

Antwort

0

Dies ist der Link für MSFT UWP Proben mit vielen Codebeispielen, die hilfreich sein werden. https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DataReaderWriter

Code-Schnipsel für Datareader i verwendet:

var reader = new DataReader(socket.InputStream); 
while (true) 
{ 
uint readLength = await reader.LoadAsync(sizeof(uint)); 
if (readLength < sizeof(uint)) 
{ 
break; 
} 
uint currentLength = reader.ReadUInt32(); 
readLength = await reader.LoadAsync(currentLength); 
if (readLength < currentLength) 
{ 
break; 
} 
string message = reader.ReadString(currentLength); 
} 

reader.DetachStream(); 

Allerdings ist bei android Enden zu überprüfen, da es anders als die normalen Lese- und Schreib von Strom ist. Datenleser erwartet die Länge der Nachricht vor der Nachricht. Achte auch auf die Endiannes. Hier ist das Snippet, das ich in C# verwendet habe, was nützlich sein könnte.

try 
{ 
    int len = data.Length; 
    byte[] lenByte = BitConverter.GetBytes(data.Length); 
       if (BitConverter.IsLittleEndian) 
       { 
        Array.Reverse(lenByte); 
       }   
       foreach (byte b in lenByte) 
       { outStream.WriteByte(b); } 

       foreach (byte b in data) outStream.WriteByte(b); 
       Console.WriteLine("Message sent"); 
       } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.Message) ; 
      }