ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #781  
Старый 23.02.2008, 02:43
Loker
Познающий
Регистрация: 25.10.2007
Сообщений: 69
Провел на форуме:
348179

Репутация: 52
По умолчанию

Jes спс тебе с этим я более мение разобрался. А ни у кого нету исходничка на С++ на подбор таблиц, или столбцов?
 

  #782  
Старый 24.02.2008, 02:05
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
По умолчанию

Как в Buildere при работе с idHTTP1 избавится от ошибки EIdsocketerror #10054

А ещё лучше скажите как сделать чтоб при поевлении любой ошибки оно писало что произошла ошибка и продлжоло работу дальше, а не завергало приложение.

Последний раз редактировалось Smapt; 24.02.2008 в 16:28..
 

  #783  
Старый 24.02.2008, 14:18
thetuk
Новичок
Регистрация: 22.02.2008
Сообщений: 9
Провел на форуме:
90595

Репутация: 0
По умолчанию

Подскажите пжалста.
Как получить картинку с сервера?
делаю следующее...
Код:
char url[] = "/i/switch-yaru.png";char host[] = "img.yandex.ru"; 
sprintf( request, "GET %s HTTP/1.1\r\nAccept: image/png, image/gif\r\nHost: %s\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\nConnection: Close\r\n\r\n", url, host ); 
send( s, request, strlen( request ), 0 );
recv( s, response, 1024*32, 0);
В результате получаю ответ сервера:

Код:
HTTP/1.1 200 OK
Connection: close
Expires: Tue, 22 Apr 2008 15:56:59 GMT
Cache-Control: max-age=5184000
Content-Type: image/png
Accept-Ranges: bytes
ETag: "490032732"
Last-Modified: Fri, 27 Jul 2007 11:27:33 GMT
Content-Length: 296
Date: Fri, 22 Feb 2008 15:56:59 GMT
Server: lighttpd/1.4.18
???Как получить саму PNG'ку???
 

  #784  
Старый 24.02.2008, 15:59
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

во-первых ты неправильно используешь функцию recv. Здесь лучше было бы принимать данные в цикле пока сервер не закроет соединение. Картинка будет идти сразу после заголовка http-ответа(конец ответа легко определить по последовательности \x0D\x0A\x0D\x0A)

если же лень писать правильно то после получения заголовка можешь просто вызвать
recv( s, response, 1024*32, 0);
еще раз, на этот раз там будет картинка
 

  #785  
Старый 25.02.2008, 05:52
Minimus
Новичок
Регистрация: 22.09.2007
Сообщений: 9
Провел на форуме:
312775

Репутация: 25
По умолчанию

у меня такая проблема : передаю проге в командной строке IP адрес,допустим 127.0.0.1,но когда начинаю заполнять структуру sockaddr_in, то оказывается что адрес равен 27.0.0.1, куда делся первый символ?
З.Ы. строка вида "proga 127.0.0.1 param1 param2"
 

  #786  
Старый 25.02.2008, 09:35
thetuk
Новичок
Регистрация: 22.02.2008
Сообщений: 9
Провел на форуме:
90595

Репутация: 0
По умолчанию

Цитата:
Сообщение от bons  
после получения заголовка можешь просто вызвать
recv( s, response, 1024*32, 0);
еще раз, на этот раз там будет картинка
В этом и проблема. Response содержит 5 символов, при весе картинки 2Кб.
После второго вызова делаю:
Код:
ofstream f_gif;
f_gif.open("1.gif", ios::binary);
f_gif<<response;
f_gif.close();
???Или записывать в файл put'ом???
 

  #787  
Старый 25.02.2008, 09:54
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

не. ну почему все перешли на этот си++? хз какая хрень..
делай recv в цикле. насколько я знаю функция возвращяет сколько байтов она прочитала.
получается так.
while (bytes=recv(s, response, 1024)>0) {
d=open("file", O_RDRW);
write(d, response, bytes);
}
так по идее должно получится
 

  #788  
Старый 25.02.2008, 16:23
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

Цитата:
Сообщение от zythar  
не. ну почему все перешли на этот си++? хз какая хрень..
делай recv в цикле. насколько я знаю функция возвращяет сколько байтов она прочитала.
получается так.
while (bytes=recv(s, response, 1024)>0) {
d=open("file", O_RDRW);
write(d, response, bytes);
}
так по идее должно получится
... да потому что такими циклами самими по себе не сделать мало мальски хорошую программу, всем приходится привыкать к реалиям мастдая. Если цикл значит новая нитка(thread).... далее по Рихтеру и С++
а если не нитка а асинхронные сокеты, то далее по Win32socket.faq и С++!
 

  #789  
Старый 25.02.2008, 20:11
LynXzp
Участник форума
Регистрация: 21.10.2007
Сообщений: 147
Провел на форуме:
388646

Репутация: 31
По умолчанию

Ламерский вопрос по С++ (Borland Turbo C++)
Возникает событие во второй форме (Unit2.cpp), как заставить выполнятся код, который находится в первой форме (Unit1.cpp) (функцию ну или другое событие).

(Думал создать невидимый чекбокс и нажимать его - но это как-то не правильно)
 

  #790  
Старый 25.02.2008, 23:24
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

сделать функцию в первой форме и при возникновении событии во второй форме вызывать эту функцию?

вначале сделай хидер Unit1.h там опиши функцию, потом имплементацию функции в Unit1.cpp.
дальше инклуди Unit1.h в Unit1.cpp и Unit2.cpp и при событии вызывай ф-цию из Unit1.cpp. посмотрим что произойдет.
несколько абстрактный пример

Unit1.h
Код:
int event_handler(int arg);
Uni1.cpp
Код:
#include "Unit1.h"

int event_handler(int arg);
{
    ...
}
Unit2.cpp
Код:
#include "Unit1.h"

int main(int argc, char *argv[])
{    ...
    if(event) {
        event_handler(event);
    };
    ...
}

Последний раз редактировалось zythar; 25.02.2008 в 23:28..
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ