Windows 8 で勉強し、WiFi Direct で 2 台の PC 間でファイルを転送するためのアプリを作成してみます。これで、アプリで 2 台の PC 間でテキストを送信できるようになりました。
テキストを送信:
private async void SendText()
{
string msg = SendMessageTextBox.Text;
if (msg.Length > 0)
{
var msgLength = dataWriter.MeasureString(msg);
dataWriter.WriteInt32(msg.Length);
dataWriter.WriteString(msg);
try
{
await dataWriter.StoreAsync();
Debug.WriteLine("Send Message >>: " + msg + "\n");
}
catch (Exception exc)
{
Debug.WriteLine("Send error: " + exc.Message + "\n");
}
}
}
テキストを受け取る:
private async void ReceiveText(StreamSocket socket, DataReader reader)
{
uint initialLength = 5;
try
{
await reader.LoadAsync(initialLength);
uint msgLength = (uint)reader.ReadInt32();
try
{
await reader.LoadAsync(msgLength);
string message = reader.ReadString(msgLength);
Debug.WriteLine(currentTime + " <<: " + message + "\n");
ReceiveText(socket, reader);
}
catch (Exception exc)
{
Debug.WriteLine("Error: " + exc.Message + "\n");
socket.Dispose();
}
}
catch (Exception exc)
{
Debug.WriteLine("Error: " + exc.Message + "\n");
socket.Dispose();
}
}
しかし、私はファイルの変換と転送の方法を本当に混乱させています。私はそれに多くの時間を費やしています...
DataReader および DataWriter クラスにいくつかのメソッドがあることは知っています。
...
public IBuffer ReadBuffer(uint length);
public void ReadBytes(byte[] value);
public static DataReader FromBuffer(IBuffer buffer);
...
public void WriteBytes(byte[] value);
public void WriteBuffer(IBuffer buffer, uint start, uint count);
...
しかし、ファイルをストリームに変換する方法と、送受信する方法を使用する方法は?
がんばるけどいつも失敗、本当に絵を描かせてくれる…
誰かガイドをくれませんか?それとも小さなサンプル?
ありがとう。