[mdk-re] Re[2]: [mdk-re] HTTP, c++ и Linux

Roman Shumikhin =?iso-8859-1?q?val_=CE=C1_val=2Eudm=2Eru?=
Вт Дек 12 16:08:00 MSK 2000


Здравствуйте, Mihael Bykov, Mikhail Zabaluev и Денис!

Хочу поблагодарить Вас всех за помощь. Спасибо!
Денис, отдельное спасибо за программу - вы мне очень помогли!

С уважением,
Роман :-)


dnr> Добрый день!

dnr> 12/12/2000 05:34:36 PM mandrake-russian-admin wrote:
>>Здравствуйте, Господа!
>>
>>Сразу  хочу  извиниться  за  оффтопик,  но, к сожалению, не смог найти
>>нужную  мне  информацию  в  других местах. Здесь, вероятно, есть много
>>программистов.  Может  кто-нибудь  мне подскажет, как на Си под Линукс
>>написать  программу, которая соединяется в WWW сервером на 80-ом порту
>>и  посылает  туда  запросы  (GET,  POST).  Или  посоветуйте, где можно
>>что-нибудь  почитать  на  эту  тему. А, может быть, у кого-нибудь есть
>>что-нибудь  похожее.  Ответ сервера сохранять не нужно, важен сам факт
>>подачи запроса. Пожалуйста помогите, очень нужно.

dnr> Примерно вот так:

dnr>     const char hostname[] = "localhost";
dnr>     struct sockaddr_in addr;
dnr>     int sock;
dnr>     char result[1024];
dnr>     FILE *conn;

dnr>     struct hostent* host = gethostbyname( hostname );
dnr>     sock = socket( PF_INET, SOCK_STREAM, IPPROTO_IP );

dnr>     addr.sin_port = htons(80);
dnr>     addr.sin_addr.s_addr = *(unsigned long*) host->h_addr;
dnr>     addr.sin_family = AF_INET;

dnr>     if ( connect( sock, (struct sockaddr*) &addr, sizeof(addr) ) ) {
dnr>         perror( "cannot connect()" );
dnr>         exit(1);
dnr>     }

dnr> // соединение установлено, можно писать/читать различными способами
dnr> (send/recv) или (write/read). Ответ сервера надо прочитать, даже если он не
dnr> нужен.

dnr>     conn = fdopen( sock, "r+" );

dnr>     fprintf( conn, "GET / HTTP/1.0\n\n" );
dnr>     fflush( conn );

dnr>     while( !feof(conn) ) {
dnr>         fgets( result, sizeof(result), conn );
dnr>         printf( "%s", result );
dnr>     }

dnr>     fclose( conn );

dnr> С уважением,
dnr> Денис.






Подробная информация о списке рассылки community