0

我正在连接邮件服务器。但我只得到 TCP 连接成功响应。我以为发送数据完成了。如何获得响应?

这是我的代码:

private async void Connect(string hostName,string port)
{
  StreamSocket ImapSer = new StreamSocket();
  await ImapSer.ConnectAsync(new HostName(hostName),port);

  string str="A001 login xxx ***";
  // Byte[] flag = new Byte[1024]; 
  // flag=System.Text.Encoding.Unicode.GetBytes(str);

  DataReader sr = new DataReader(ImapSer.InputStream);

  sr.InputStreamOptions = InputStreamOptions.Partial;

  await sr.LoadAsync(1024);
  string data = sr.ReadString(sr.UnconsumedBufferLength);
  txtblk1.Text = data;

  DataWriter writer = new DataWriter(ImapSer.OutputStream);
  writer.WriteString(str);
  await writer.StoreAsync();

  // writer.WriteString(str);
  // await writer.StoreAsync();

  DataReader sr2 = new DataReader(ImapSer.InputStream);
  sr2.InputStreamOptions = InputStreamOptions.Partial;

  await sr2.LoadAsync(1024);
  string data2 = sr2.ReadString(sr2.UnconsumedBufferLength);
  txtblk2.Text = data2;  
}
4

1 回答 1

0

只使用一个DataReader

DataReader sr = new DataReader(ImapSer.InputStream);
sr.InputStreamOptions = InputStreamOptions.Partial;

await sr.LoadAsync(1024);
string data = sr.ReadString(sr.UnconsumedBufferLength);
txtblk1.Text = data;

DataWriter writer = new DataWriter(ImapSer.OutputStream);
writer.WriteString(str);
await writer.StoreAsync();

await sr.LoadAsync(1024);
string data2 = sr.ReadString(sr.UnconsumedBufferLength);
txtblk2.Text = data2;
于 2012-08-09T10:16:09.637 回答