我正在使用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();
}