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の例と(多かれ少なかれ)同じです。