次の方法で共有


Packet.ReadBytes メソッド

更新 : 2007 年 11 月

Packet オブジェクトからバイトの配列を読み取り、内部反復子がパケット内の次のデータ オブジェクトを指すようにします。

名前空間 :  Microsoft.SmartDevice.Connectivity
アセンブリ :  Microsoft.SmartDevice.Connectivity (Microsoft.SmartDevice.Connectivity.dll 内)

構文

'宣言
Public Function ReadBytes As Byte()
'使用
Dim instance As Packet
Dim returnValue As Byte()

returnValue = instance.ReadBytes()
public byte[] ReadBytes()
public:
array<unsigned char>^ ReadBytes()
public function ReadBytes() : byte[]

戻り値

型 : array<System.Byte[]

パケットから読み取ったバイトの配列。

例外

例外 条件
InvalidOperationException

次の 1 つ以上の条件に当てはまる場合にスローされます。

  • パケットの現在のデータ オブジェクトが Byte[] 型ではありません。

  • パケットの末尾に到達した後に読み取り操作を実行しようとしました。

解説

パケット内の最後のデータ オブジェクトが読み取られると、このメソッドはパケットの EOP フラグを true に設定し、反復子をインクリメントします。Read メソッドを次に呼び出すと、InvalidOperationException がスローされます。Read を呼び出す前に、常に EOP を確認する必要があります。

' While stream is connected, try to read a packet.
While ps.IsConnected()
    If ps.IsPacketAvailable() Then
        packet = ps.Read()
        While Not packet.IsEndOfPacket()
            Select Case packet.ReadDataType()
                Case DataType.BoolType
                    Dim boolValue As Boolean = packet.ReadBool()
                Case DataType.ByteArrayType
                    Dim buffer As Byte() = packet.ReadBytes()
                Case DataType.ByteType
                    Dim byteValue As Byte = packet.ReadByte()
                Case DataType.CharType
                    Dim charValue As Char = packet.ReadChar()
                Case DataType.Int32Type
                    Console.WriteLine("Int32Type:  " + packet.ReadInt32().ToString())
                Case DataType.StringType
                    Console.WriteLine("String:  " + packet.ReadString())
                Case Else
            End Select
        End While
        Exit While
    End If
    System.Threading.Thread.Sleep(1000)
End While
ps.Close()
device.Disconnect()
// While stream is connected, try to read a packet.
while (ps.IsConnected())
{
    if (ps.IsPacketAvailable())
    {
        packet = ps.Read();
        while (!packet.IsEndOfPacket())
        {
            switch (packet.ReadDataType())
            {
                case DataType.BoolType:
                    bool boolValue = packet.ReadBool();
                    break;
                case DataType.ByteArrayType:
                    byte[] buffer = packet.ReadBytes();
                    break;
                case DataType.ByteType:
                    byte byteValue = packet.ReadByte();
                    break;
                case DataType.CharType:
                    char charValue = packet.ReadChar();
                    break;
                case DataType.Int32Type:
                    Console.WriteLine("Int32Type:  " + packet.ReadInt32().ToString());
                    break;
                case DataType.StringType:
                    Console.WriteLine("String:  " + packet.ReadString());
                    break;
                default:
                    break;
            }
        }
        break;
    }
    System.Threading.Thread.Sleep(1000);
}
ps.Close();
device.Disconnect();

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

Packet クラス

Packet メンバ

Microsoft.SmartDevice.Connectivity 名前空間