Автор: Quies (04.10.2008 в 17:22)
Ни, как не получается получить код веб страницы с помощью сокетов, зная адрес (например www.mail.ru). А потом вывести в консоль, либо сохранить в файл.
У меня Linux OpenSUSE, Kdevelop.
Использовал код этой статьи http://www.opennet.ru/docs/RUS/linux_parallel/node82.html.
Вот код что я испытывал:
#include <iostream>
#include <cstdlib>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#define ADDRESS "www.mail.ru" /* адрес для связи */
using namespace std;
int main(int argc, char *argv[])
{
char c;
int i, s, len;
FILE *fp;
struct sockaddr_un sa;
// создаём сокет
s = socket(AF_INET, SOCK_STREAM, 0);
// проверка создания сокета
if(s < 0) {
perror("socket");
exit(1);
} // конец условия
sa.sun_family = AF_UNIX;
strcpy (sa.sun_path, ADDRESS);
/* пытаемся связаться с сервером: */
len = sizeof ( sa.sun_family) + strlen ( sa.sun_path);
if ( connect ( s, &sa, len) < 0 ){
perror ("client: connect"); exit (1);
}
close (s);
return EXIT_SUCCESS;
}
|
Выдаёт ошибку: /home/quies/Develop/C++/http/src/http.cpp:74: error: cannot convert 'sockaddr_un*' to 'const sockaddr*' for argument '2' to 'int connect(int, const sockaddr*, socklen_t)'
Это только конект,. а хотелось бы получить ещё страницу. Но до этого пока не дошел.