DevicePacketStream.Read メソッド
更新 : 2007 年 11 月
デバイスからデータを読み取り、パケット オブジェクトを返します。
名前空間 : Microsoft.SmartDevice.Connectivity
アセンブリ : Microsoft.SmartDevice.Connectivity (Microsoft.SmartDevice.Connectivity.dll 内)
構文
'宣言
Public Function Read As Packet
'使用
Dim instance As DevicePacketStream
Dim returnValue As Packet
returnValue = instance.Read()
public Packet Read()
public:
Packet^ Read()
public function Read() : Packet
戻り値
型 : Microsoft.SmartDevice.Connectivity.Packet
デバイス パケット ストリームで転送されたデータを含むパケット オブジェクト。
例外
例外 | 条件 |
---|---|
IOException | パケットを読み取るときに例外が発生したか、ストリームからのデータが有効なパケット オブジェクトでない場合に発生します。 |
SerializationException | ネットワークでの伝送中にパケットが破損しました。 |
解説
読み取りストリームに到着したデータが有効なパケットでない場合、このメソッドは例外をスローします。
このメソッドは、IsPacketAvailable が True を返した後に呼び出す必要があります。接続されているデバイス エージェントが Write を呼び出してストリームにパケットを書き込むと、パケットが利用可能になります。
例
' 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();
アクセス許可
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。