C# StreamSocket在metro中读取两次
我正在连接邮件服务器。但是我只得到了TCP连接成功的响应。我想发送数据已经完成了。如何得到回应 这是我的密码:C# StreamSocket在metro中读取两次,c#,microsoft-metro,datareader,C#,Microsoft Metro,Datareader,我正在连接邮件服务器。但是我只得到了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 **
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;
}
仅使用一个
数据读取器
:
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;
我不确定这是否正确。ReadString要求codeUnitCount(字符串的长度)不总是与字符串长度相同