我试着编写一段简单的代码,使用StreamSocket连接到IMAP服务器。它可以读取服务器连接响应,但之后就无法读取任何其他数据。
private async void TCPTest(string hostName, string port)
{
status.Text = "start of TCPTest";
StreamSocket socket = new StreamSocket();
await socket.ConnectAsync(new HostName(hostName), port);
string senddata = "A001 login uuu ppp";
status.Text += "\n first reading...";
DataReader reader = new DataReader(socket.InputStream);
reader.InputStreamOptions = InputStreamOptions.Partial;
await reader.LoadAsync(1024);
string data = reader.ReadString(reader.UnconsumedBufferLength);
status.Text += "\n > read " + data;
status.Text += "\n writing...";
writer = new DataWriter(socket.OutputStream);
writer.WriteString(senddata);
await writer.StoreAsync();
status.Text += "\n > wrote " + sendata;
status.Text += "\n second reading...";
writer = new DataWriter(socket.OutputStream);
await reader.LoadAsync(1024);
string data2 = reader.ReadString(reader.UnconsumedBufferLength);
status.Text += "\n >" + data2;
status.Text += "\n end of TCPTest";
}
这是我的输出结果。
start of TCPTest
first reading...
> read * OK mydomain.com IMAP4rev1 MDaemon 13.0.1 ready
writing...
> wrote A001 login uuu ppp
second reading...
这个应用程序一直停留在这里,没有错误提示,也没有继续执行。我在做什么方面犯了基本错误吗?我的代码与MSDN上的StreamSocket示例基本相同。