Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

ошибка   Найти похожие ветки 

 
Res   (2008-04-16 15:45) [0]

Здравствуйте! Помогите пожалуйста найти ошибку в коде.
function getpage(url,url2:string):string;
var
D:WSAData;
S:TSocket;
A:TSockAddr;
request,response:string;
begin
 if(WSAStartup($101,D)<>0) then
 begin
   result:="";
   exit;
 end;
 A.sin_family:=AF_INET;
 a.sin_port := htons( 80 ); // &#239;&#238;&#240;&#242; &#241;&#229;&#240;&#226;&#229;&#240;&#224;
 A.sin_addr.s_addr := inet_addr(PcHar(url));
 S:=socket(AF_INET,SOCK_STREAM,0);
 request:="GET "+url+" HTTP/1.1"+#13#10+"Host: "+url2+#13#10+"Connection: Close"+#13#10#13#10;
 if(connect(S,A,sizeof(A))<>0) then
 begin
 showmessage("closed");
 end;
 send( s, request,length(request),0);
 recv( s, response, sizeof(s), 0 );
 result:=response;
end;


 
Dennis I. Komarov ©   (2008-04-16 15:46) [1]

Ошибку в коде ищет компилятор.


 
Сергей М. ©   (2008-04-16 15:55) [2]

Она здесь:


>  send( s, request,length(request),0); //раз грабли !
>  recv( s, response, sizeof(s), 0 ); //и еще раз на те же грабли )


 
Dennis I. Komarov ©   (2008-04-16 15:57) [3]

> [2] Сергей М. ©   (16.04.08 15:55)

Знакомые грабли :)


 
Сергей М. ©   (2008-04-16 15:59) [4]


> Dennis I. Komarov ©   (16.04.08 15:57) [3]


Наступал ?)


 
Res   (2008-04-16 16:01) [5]

Подскажите пожалуйста, что делаю неправильно, просто пример был:
#include <stdio.h>
#include <winsock2.h> // хедер с описанием wsa ф-ий

// для ms vc++6.0 и др - подключаем lib"у с импортами wsa ф-ий
#pragma comment( lib, "wsock32.lib" )

int main(int argc, char* argv[])
{
char request[1024*5]; // буффер под запрос
char response[1024]; // буффер под ответ
sockaddr_in s_a;
WSADATA wd; // структура WSADATA

WSAStartup( MAKEWORD( 2, 2 ), &wd ); // инициализируем wsa

SOCKET s = socket( AF_INET, SOCK_STREAM, 0 ); // создаем сокет
if (s == INVALID_SOCKET) return 255; // если ошибка - выход

s_a.sin_addr.s_addr = inet_addr( "89.108.80.80" ); // айпи сервера, в данном случае - античат.ру
s_a.sin_port = htons( 80 ); // порт сервера
s_a.sin_family = AF_INET;

if (connect( s, (struct sockaddr*)&s_a, sizeof( s_a ) ) == SOCKET_ERROR) return 255; // SOCKET_ERROR - невозможно подключится к сереверу

char url[] = "/"; // страница
char host[] = "antichat.ru"; // хост
// формируем запрос
sprintf( request, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: Close\r\n\r\n", url, host );

send( s, request, strlen( request ), 0 ); // послать запрос
recv( s, response, 1023, 0 ); // максимум получить 1023 байта

printf( "%s\r\n", response ); // вывести ответ на экран

closesocket( s ); // закрываем сокет
WSACleanup(); // деинициализируем wsa

return 0;
}


 
Dennis I. Komarov ©   (2008-04-16 16:04) [6]

> [4] Сергей М. ©   (16.04.08 15:59)

А то :)


 
Сергей М. ©   (2008-04-16 16:09) [7]


> Res   (16.04.08 16:01) [5]


Граблей тут навалом разных)

Начнем с самых легких - строки какого конкретно содержимого ты намериваешься передавать параметром url в свою функцию ?


 
Anatoly Podgoretsky ©   (2008-04-16 16:09) [8]

> Dennis I. Komarov  (16.04.2008 15:46:01)  [1]

Ты не прав, ошибки в коде ищут форумы.


 
Res   (2008-04-16 16:16) [9]

Может перестанете флуд разводить ;) и подскажите что я делаю не так.
И еще вопрос
Можно ли вместе IP указывать хост?


 
Res   (2008-04-16 16:18) [10]

вместо*


 
Сергей М. ©   (2008-04-16 16:22) [11]


> что я делаю не так


Ты не понимаешь разницы между дельфийскими длинными строками и статическими массивами.


> Можно ли вместе IP указывать хост?


Где ты его хочешь указывать ?


 
Dennis I. Komarov ©   (2008-04-16 16:27) [12]

> [8] Anatoly Podgoretsky ©   (16.04.08 16:09)

Не, тут уже ищут ошибки "тараканов в голове" :)



Страницы: 1 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
15-1207312946
@!!ex
2008-04-04 16:42
2008.05.18
MSDN для Limux API есть?


15-1207128130
kiberg
2008-04-02 13:22
2008.05.18
список замен


15-1207627805
Slider007
2008-04-08 08:10
2008.05.18
С днем рождения ! 8 апреля 2008 вторник


2-1208370567
Вопрос
2008-04-16 22:29
2008.05.18
Как составить сложный запрос ?


15-1207358206
Tirael
2008-04-05 05:16
2008.05.18
реклама линукса