0

私はMetroClient-Serverアプリケーションを開発しており、クライアントではStreamSocketを使用してリスニングサーバーに接続しています。次に、StreamWriterを使用してサーバーにデータを送信しようとします。問題は、新しいStreamWriterオブジェクトを作成するときに、彼にストリーム引数を与える必要があることです。私の場合、StreamSocketからのストリームを彼に与える必要があります。これが私が話していることです:

   private StreamWriter swSender;


   private StreamSocket tcpServer;

データを送信しようとする場合:

   swSender = new StreamWriter(????);
   swSender.WriteLine(mytext);
   swSender.Flush();

???? tcpServerからのStreamである必要がありますが、古いフレームワークのTcpClient()クラスのようなGetStream()メソッドはありません。回避策はありますか?何か案は?前もって感謝します。

4

2 に答える 2

1

私が間違っていなければ、彼はInputStreamOutputStreamを持っています

その後

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);
于 2012-04-26T21:46:12.477 に答える
0

このようなものを使用できます(適切に処分するため)

tcpclient のストリームリーダーとライターの開始

于 2018-11-11T15:08:47.223 に答える