上記のコードから、サーバーからの応答を読み取るためにConnectSocket()メソッドを変更します。
私はコードを実行していません。変更は
private async Task ConnectSocket()
{
StreamSocket socket = new StreamSocket();
socket.Control.KeepAlive = false;
HostName host = new HostName("localhost");
try
{
await socket.ConnectAsync(host, "5463");
Stream streamOut = socket.OutputStream.AsStreamForWrite();
StreamWriter writer = new StreamWriter(streamOut);
string request = "Test Self App \n";
await writer.WriteLineAsync(request);
await writer.FlushAsync();
// Code for reading
Stream streamIn = socket.OutputStream.AsStreamForRead();
StreamReader reader = new StreamReader(streamIn);
char[] result = new char[reader.BaseStream.Length];
await reader.ReadAsync(result, 0, (int)reader.BaseStream.Length);
// Your data will be in results
socket.Dispose();
}
catch (Exception ex)
{
txb_Events.Text += ex.Message;
//Logs.Add(ex.Message)
}
}
は常にサーバに接続されたクライアントですか? – Suneesh
いいえクリックしてください。サーバーに接続しています。私は概念証明(POC)を開発しており、このPOCを拡張する必要があります。 私の要件は、クライアントとサーバーが異なるマシンでホストされていることです。サーバーがクライアントからデータを受信すると、すぐにクライアントに応答を返す必要があります。 – user3012974
これは単純ですが、非同期ソケットを使用してサーバーに接続し、データを送信し、切断しないで、同じソケットからデータを読み取るのを待ちます。例https://msdn.microsoft.com/en-us/library/windows/apps/hh202858%28v=vs.105%29.aspx – Suneesh