Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с TCP

3.6K
11 ноября 2007 года
dimas09
92 / / 17.06.2007
Использую следующую метод:
Код:
public void Write_base64(string message)
        {
            System.Text.ASCIIEncoding en = new System.Text.ASCIIEncoding();
            byte[] WriteBuffer = new byte[1024];
            WriteBuffer = en.GetBytes(message);
            message = System.Convert.ToBase64String(WriteBuffer, 0, WriteBuffer.Length);
            Console.WriteLine(message);
            WriteBuffer = en.GetBytes(message);
            NetworkStream stream = GetStream();
            stream.Write(WriteBuffer, 0, WriteBuffer.Length);
        }

Но плучаю следующую ошибку от сервера 501 Invalid base64 data
Правильно ли я преобразовую в base64?
5
11 ноября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: dimas09
Использую следующую метод:
Правильно ли я преобразовую в base64?


Нет.
Перекодировка в аски осуществляется проще:

 
Код:
Encoding encoding = Encoding.ASCII;
byte[] encoded_message = encoding.GetBytes(message.ToCharArray());
string b64 = Convert.ToBase64String(encoded_message);
using(StreamWriter writer = new StreamWriter(GetStream()) {
    writer.Write(b64);
    writer.Flush();
}

Кроме того, проверьте, что у вас сетевой поток закрывается корректно.
Для работы с потоками лучше всего использовать using(Stream stream = ...) { } конструкцию.
3.6K
12 ноября 2007 года
dimas09
92 / / 17.06.2007
Вот кусок кода из класа унаследованого от System.Net.Sockets.TcpClient
Код:
message = "AUTH LOGIN\r\n";
Write(message);
message = "*******\r\n";
Write_base64(message);
response = Response();
if (response.Substring(0, 3) != "334")
{
    throw new SmtpException(response);
}
message = "******\r\n";
Write_base64(message);
response = Response();
Console.WriteLine(response);
if (response.Substring(0, 3) != "334")
{
    throw new SmtpException(response);
}

изменений в функцию Write_base64 не делал, логин отправляется - все ок, а вот после отправки пароля в поток, ответ получить не могу.
5
12 ноября 2007 года
hardcase
4.5K / / 09.08.2005
Вы пытаетесь отправить почтовое сообщение?
Но для этого уже существует класс System.Net.Mail.SmtpClient.
3.6K
15 ноября 2007 года
dimas09
92 / / 17.06.2007
Да, но у меня стоит задача сделать это без использования класса.
Я должен написать почтовый клиент в качестве курсовой работы
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог