StreamSocketを使用してソケットサーバーに接続しています。データを読み取るのに無限ループを使用しています。各データは「\ n \ n」で終わります。スニペットを以下に示します。しかし、ソケットがまだ生存しているかどうかはわかりません。サーバーが接続をシャットダウンするたびに、ReadAsync()は例外をスローします。接続が閉じられたときの通知方法UWPでStreamSocketを使用しているときにソケット接続がまだ生きているかどうかを確認するには?
public async Task<string> ReadData() {
StreamReader reader = new StreamReader(socket.InputStream.AsStreamForRead());
char[] ch = new char[65536];
int i = 0;
while (IsConnected) {
await reader.ReadAsync(ch, i++, 1);
if (i > 1 && ch[i - 1] == '\n' && ch[i - 2] == '\n') break;
}
return new StringBuilder().Append(ch, 0, i - 2).ToString();
}