3

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

4

1 に答える 1

3

コマンドを終了していなかったことがわかりました。最後に追加Environment.Newlineすることで問題が解決しました。

于 2012-10-08T14:33:59.717 に答える