Проблема с сокетами
От: TerminalSoul  
Дата: 24.09.09 13:27
Оценка:
Вот пытаюсь написать программу, которая бы тащила с сайта(в данном случае mail.ru) HTML код, и потом обрабатывала, но проблема в том, что после отправки пакета не вызывается OnReceive(). Базовый класс сокета CAssyncSocket.
Вот метод отправки сообщения:
int CClientSocket::SendPacket(char *link)
{
    int ipacket,res;
    CString packet,lnk;
    lnk=link;
    packet="GET ";
    packet+=lnk;
    packet+=" HTTP/1.1\r\n Host: mail.ru\r\n Connection: Keepa-Alive\r\n \r\n";
    ipacket=packet.GetLength();
    res=Send(LPCTSTR(packet),ipacket);
    return res;
}

А вот метод Init()

void CClientSocket::Init()
{
    bool res;
    Create();
    res=Connect("217.69.128.42",80);
}


А вот собственно метод, вызываемый после нажатия на кнопку:

void Ctrysocket1Dlg::OnGO()
{
     clint.Init();
     clint.SendPacket("http://www.mail.ru");
}

Что не так или может я вообще пытаюсь штаны через голову одеть и надо делать по другому?
Re: Проблема с сокетами
От: Аноним  
Дата: 25.09.09 07:32
Оценка:
Здравствуйте, TerminalSoul, Вы писали:


TS>Что не так или может я вообще пытаюсь штаны через голову одеть и надо делать по другому?


Я делал это через IXMLHTTPRequest
Re: Проблема с сокетами
От: dcb-BanDos Россия  
Дата: 28.09.09 13:35
Оценка:
Здравствуйте, TerminalSoul, Вы писали:

TS>Что не так или может я вообще пытаюсь штаны через голову одеть и надо делать по другому?


по запросу в гугле MFC html request сразу выдаются нужные результаты:


To communicate with an HTTP server, you must first create an instance of CInternetSession, and then create a CHttpConnection object. You never create a CHttpConnection object directly; rather, call CInternetSession::GetHttpConnection, which creates the CHttpConnection object and returns a pointer to it.

Ничто не ограничивает полет мысли программиста так, как компилятор.
Re: Проблема с сокетами
От: ak_miass Россия  
Дата: 29.09.09 07:11
Оценка:
Здравствуйте, TerminalSoul, Вы писали:

TS>
TS>    packet+=" HTTP/1.1\r\n Host: mail.ru\r\n Connection: Keepa-Alive\r\n \r\n";
TS>

В этой строке точно пробелов лишних нет? Особенно между двумя \r\n
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.