我正在开发Metro Client-Server应用程序,在客户端我使用StreamSocket连接到侦听服务器。然后我尝试使用StreamWriter将数据发送到服务器。问题是,当我创建新的StreamWriter对象时,我需要给他一个流参数。在我的情况下,我需要从StreamSocket给他Stream。这就是我所说的:
private StreamWriter swSender; private StreamSocket tcpServer;
尝试发送数据时:
swSender = new StreamWriter(????); swSender.WriteLine(mytext); swSender.Flush();
????必须是来自tcpServer的Stream,但是没有像旧框架中的TcpClient()类中的GetStream()方法。任何解决方法?有任何想法吗?提前谢谢。
答案 0 :(得分:1)
如果我没有错,他有 InputStream 和 OutputStream
然后
async private void WaitForData(StreamSocket socket)
{
var dr = new DataReader(socket.InputStream);
//dr.InputStreamOptions = InputStreamOptions.Partial;
var stringHeader = await dr.LoadAsync(4);
if (stringHeader == 0)
{
// disconnected
return;
}
int strLength = dr.ReadInt32();
uint numStrBytes = await dr.LoadAsync((uint)strLength);
string msg = dr.ReadString(numStrBytes);
WaitForData(socket);
}
修改强>
所以你需要这样的东西
IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(text, BinaryStringEncoding.Utf8);
tcpServer.OutputStream.WriteAsync(buffer);
答案 1 :(得分:0)
您可以使用类似的东西(正确处理)