#c# #sockets #ssl
#c# #сокеты #ssl
Вопрос:
Мне всегда не удается прочитать из потока в следующем блоке моего кода.
Data = "STAT" CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
Пример кода приведен ниже.
// create server POP3 with port 995
Server = new TcpClient(POPServ.Text,995);
Status.Items.Clear();
try
{
// initialization
NetStrm = Server.GetStream();
RdStrm= new StreamReader(Server.GetStream());
Status.Items.Add(RdStrm.ReadLine());
// Login Process
Data = "USER " User.Text CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
Data = "PASS " Passw.Text CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
// Send STAT command to get information ie: number of mail and size
Data = "STAT" CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
Я также хочу включить SSL. Пожалуйста, помогите мне!!!
Комментарии:
1. Сбой? Каким образом это приводит к сбою?
Ответ №1:
var client = new TcpClient(serverName, port);
var sslStream = new System.Net.Security.SslStream(m_client .GetStream());
sslStream .AuthenticateAsClient(serverName);
Все выглядит хорошо. Просто ли время ожидания чтения? Получаете ли вы сообщения OK во время входа в систему? Я бы попробовал выполнить чтение буфера, чтобы посмотреть, получаете ли вы что-нибудь обратно. Также попробуйте другую команду.
Я никогда не использовал ReadLine () для сетевых потоков. Я всегда использовал BeginRead.
Поток.BeginRead, затем проверяется перевод строки возврата каретки.
http://msdn.microsoft.com/en-us/library/system.io.stream.beginread.aspx