Nasıl C # bir ikili dize okuyabilir?

3 Cevap

Istemci uygulamasına bir ikili dize gönderir bir php script var:

$binary_string = pack('i',count($result_matrix));   
foreach ($result_matrix as $row)
{
    foreach ($row as $cell)
    {
        $binary_string .= pack('d',$cell);
    }
}
echo $binary_string;

Silverlight uygulama POST protokolü üzerinden $ binary_string alır. Nasıl bu ikili dize ayrıştırmak?

Ya da belki Silverlight PHP matris göndermek için daha iyi bir yolu var mı?

3 Cevap

Eğer System.IO.Stream türü olarak veri almak, doğrudan yöntemi read kullanabilirsiniz.

Belki temel yolu, XML veri göndermek için? Nedeni Silverlight tarafında bu php fonksiyonu ile dolu değil, sadece ikili veri açmak için var, ama aynı zamanda veri sructure ikili veri temsil php script ne kadar dolu bir knowlege olmasıdır.

Veri açmak için böyle somethong kullanmak daha paketleme için HEX biçimi kullanın eğer:

static byte[] UnpackHex(string hexvalue)
{
        if (hexvalue.Length % 2 != 0)
                hexvalue = "0" + hexvalue;
        int len = hexvalue.Length / 2;
        byte[] bytes = new byte[len];
        for(int i = 0; i < len; i++)
        {
                string byteString = hexvalue.Substring(2 * i, 2);
                bytes[i] = Convert.ToByte(byteString, 16);
        }
        return bytes;
}

System.IO ad olarak da BinaryReader sınıfını kullanabilirsiniz. Bu konumda belgelerine bakın BinaryReader

Ben bu yardım gerektiğini düşünüyorum. Daha fazla yardıma ihtiyacınız varsa, belki de Silverlight tarafında bazı kod sağlamalıdır.