我研究了Windows8,尝试创建一个应用程序,通过WiFi直接在两台PC之间传输文件。现在我可以让应用程序在两台PC之间发送文本。
SendText:
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);
...但是如何将文件转换成流,并用什么方法发送和接收呢?
我尽了最大的努力,但总是失败,真的让我作画…
有人给我指路了吗?或者是一个小样本?
谢谢。
发布于 2013-12-18 23:22:55
这里有一篇文章(包括一个你可以重复使用的库)来帮助你在两个Windows8对等机之间使用Wifi-Direct传输文件:http://blogs.msdn.com/b/stephe/archive/2013/12/11/win8-1-transfering-a-file-between-2-peers-using-wifi-direct-and-proximity-api.aspx
希望能有所帮助
https://stackoverflow.com/questions/13836637
复制相似问题