Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: подключение к http серверу  (Прочитано 1202 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Erik.Martirosyan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
подключение к http серверу
« : 05 Ноября 2010, 19:28:05 »
Всем добрый день !

Перед тем как задавать вопрос , хотел бы кратко описать свою ситуацию . У меня такая пробелма , в универе для получения зачета по администрирование сетей unix требуется написать программу , которая бы подключалась к http серверу , получала бы страничку (html) , и вставляла бы в эту страничку блок с системными данными моего интернет подключения. Сам я работаю программистом c# , на linux работаю впервые. На компе стоит windows , linux(ubuntu) поставил на virtualbox. Пока только написал программу "Hello, world!" , работает ))

Пока такой вопрос , как настроить подключение к серверу ? Очень прошу помочь ...

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: подключение к http серверу
« Ответ #1 : 05 Ноября 2010, 20:10:49 »
Какой язык программирования указан в задании?

Оффлайн Erik.Martirosyan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: подключение к http серверу
« Ответ #2 : 05 Ноября 2010, 20:21:44 »
C++ , с языком хорошо знаком , но знание различных библиотек ... нема ...

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: подключение к http серверу
« Ответ #3 : 05 Ноября 2010, 20:25:55 »
Тогда изучай библиотеку curl

Оффлайн Erik.Martirosyan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: подключение к http серверу
« Ответ #4 : 05 Ноября 2010, 20:31:37 »
окэ , Спасибо !

Оффлайн WereBeast

  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Re: подключение к http серверу
« Ответ #5 : 07 Ноября 2010, 15:17:54 »
а лучше не парься и 15 минут почитай как манипулировать сокетами ))))

Программирую пропаганду
Windows - в гландах

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: подключение к http серверу
« Ответ #6 : 07 Ноября 2010, 17:38:50 »
Ну вообще
0) установить tcp/ip соединение пусть будет
читаем man getaddrinfo там где-то в конце примерчик установки соединения
1) открываем полученый сокет как файл (блокирующий буферизованый ввод/вывод)
FILE *fds = fdopen(sock, "rw");
2) послать HTTP-запрос основываясь на http://ru.wikipedia.org/wiki/HTTP
fprintf(fds, "GET %s HTTP/1.1\r\n", uri);
fprintf(fds, "Host: %s\r\n", host);
fprintf(fds, "Connection: close\r\n");
fprintf(fds, "\r\n");
fflush(fds); // штоб наверняка
в переменной uri должен содержаться URI странички
в host имя хоста (имя виртуального хоста к которому хочешь подцепиться если на сервере настроены виртуальные сервера)
3) прочитать ответ, распарсить его и вывести на экран ответ
по простому это в цикле вычитываем из "файла" все строки до конца "файла"  после того как прочитаем пустую строку начинаем дальнейшие строки выводить на экран
....
size_t chomp(char *line, size_t line_len)
{
    while(line_len > 0 && isspace(line[line_len-1]) {
        line[line_len-1] = 0;
        --line_len;
    }
    return line_len;
}
....
char *line = NULL;
size_t line_len = 0;
ssize_t read;
int p = 0;
while ((read = getline(&line, &line_len, fds)) != -1) {
    if (chomp(line, &line_len) == 0)
    {    p = 1;  continue;  }
    if (p) printf("%s\n", line);
}
if (line)
free(line);

P.S. Код я писал без оглядки вообще на что-либо. Так что обязательно проверить на наличие касяков. Я даже не могу дать гарантии что скомпилится =)

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.