ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript > ПО для Web разработчика
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 14.11.2009, 16:25
Аватар для Mixon
Mixon
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме:
12333903

Репутация: 238
Отправить сообщение для Mixon с помощью ICQ
По умолчанию

Pashkela,плиз,можеш тогда мне сейчас сделать на неблокируемых сокетах аналог моей функции на php?

PHP код:
function curl($urlcurl,$postcurl,$cookiescurl){
    
$ch=curl_init ($urlcurl);
    
$ua 'Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1';
    
curl_setopt($chCURLOPT_USERAGENT$ua);
    
curl_setopt($chCURLOPT_HEADER0);
    
curl_setopt($chCURLOPT_USERAGENT$ua);
    
curl_setopt($chCURLOPT_REFERER$ref);
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_POSTFIELDS$PostData);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_COOKIE$cookiescurl);
    
curl_setopt($chCURLOPT_POSTFIELDS$postcurl);
    
$page=curl_exec($ch);
    return 
$page;

чтоб был вызов функцыи такой: sock("Ссылка URL","POST запрос вида s=1&hh=4","Кукисы");

Просто я с соксами не работал,всегда курлом обходился,как с ними работать хз,ну более чем такая функция мне и ненужно ничего.Спс
 
Ответить с цитированием

  #22  
Старый 14.11.2009, 16:30
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

исправил предыдущий пост, изучай (там только куки вставить и пост-данные)

Цитата:
Просто я с соксами
сокс это вовсе не сокеты. Не путай фундаметнальные понятия. SOCKETS !== SOCKS

PS: Curl - для лохов. Всегда зри в корень протокола. Познаешь сокеты - захаваешь весь интернет. Шутка, но с очень большой долей правды

Последний раз редактировалось Pashkela; 14.11.2009 в 16:33..
 
Ответить с цитированием

  #23  
Старый 14.11.2009, 16:40
Аватар для Mixon
Mixon
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме:
12333903

Репутация: 238
Отправить сообщение для Mixon с помощью ICQ
По умолчанию

Пример на твоих соксах....

PHP код:
<?
include "include/winbinder.php";
define("ID_START",    100);


$mainwin wb_create_window(null,AppWindow,'Тест зависания...',WBC_CENTERWBC_CENTER600600,0x000000000);



wb_create_control($mainwinPushButton"СТАРТ!",       2020560520,    ID_START);



wb_set_handler($mainwin"process_main");
wb_main_loop();

function 
process_main($window,$id) {
 switch(
$id) {
  case 
ID_START:
$a sql("http://www.model.poltava.ua");
alert($a);
  break;
  case 
IDCLOSE:
   
wb_destroy_window($window);
  break;
 }
}

 function 
sql($url) {
  
$patern "/^(http:\/\/)?([^\/]+)/i";
  
$source_host preg_match($patern$url$rezz);
  
$host $rezz[2];
  
$url1 "GET $url\n"// Тут GET можно поменять на POST, к примеру
  
$responce "";
  
$timeout 30// На Ваше усмотрение
  
$fsock    fsockopen($host80$errnum,$errstr,$timeout);
  if (
$fsock) {
         
$headers  $url1;
         
$headers .= "Host: $host\n";
         
$headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n";
         
$headers .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n";
         
$headers .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\n";
         
$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\n";
         
$headers .= "Keep-Alive: 500\n";
         
$headers .= "Connection: close\n";
         
$headers .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
         
fwrite   ($fsock,$headers);
         
stream_set_blocking($fsock0);
         
stream_set_timeout($fsock$timeout);
         while    (!
feof($fsock)) $responce .= fread($fsock,4096);
         
fclose   ($fsock);
  }
  return 
$responce;
}

function 
alert($textalert){
wb_message_box($window$textalert"Alert"WBC_INFO);
}

?>
Сайт выбрал который долго грузиться,сам посмотри...Пока сокс не выполниться,тоисть весь скрипт,ты ничего не можешь сделать...так же само если и место
$a = sql("http://www.model.poltava.ua");
вставить sleep(20);
он зависнет,или любую долгую операцию...
 
Ответить с цитированием

  #24  
Старый 14.11.2009, 16:45
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

так и должно быть, ни в одном языке программирования при плохом конекте с сайтом скорости не жди. Многопоточный если даже будет скрипт - запустит 50 запросов и также будет висеть. А вот ТАЙМАУТ выставленный в функции позволит нажать кнопочку ровно через столько секунд, сколько таймаут.

PS: Еще раз - sleep - не выход. В любом языке программирования.
 
Ответить с цитированием

  #25  
Старый 14.11.2009, 16:47
Аватар для m0Hze
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Цитата:
Сообщение от Mixon  
Пример на твоих соксах....

PHP код:
<?
include "include/winbinder.php";
define("ID_START",    100);


$mainwin wb_create_window(null,AppWindow,'Тест зависания...',WBC_CENTERWBC_CENTER600600,0x000000000);



wb_create_control($mainwinPushButton"СТАРТ!",       2020560520,    ID_START);



wb_set_handler($mainwin"process_main");
wb_main_loop();

function 
process_main($window,$id) {
 switch(
$id) {
  case 
ID_START:
$a sql("http://www.model.poltava.ua");
alert($a);
  break;
  case 
IDCLOSE:
   
wb_destroy_window($window);
  break;
 }
}

 function 
sql($url) {
  
$patern "/^(http:\/\/)?([^\/]+)/i";
  
$source_host preg_match($patern$url$rezz);
  
$host $rezz[2];
  
$url1 "GET $url\n"// Тут GET можно поменять на POST, к примеру
  
$responce "";
  
$timeout 30// На Ваше усмотрение
  
$fsock    fsockopen($host80$errnum,$errstr,$timeout);
  if (
$fsock) {
         
$headers  $url1;
         
$headers .= "Host: $host\n";
         
$headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n";
         
$headers .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n";
         
$headers .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\n";
         
$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\n";
         
$headers .= "Keep-Alive: 500\n";
         
$headers .= "Connection: close\n";
         
$headers .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
         
fwrite   ($fsock,$headers);
         
stream_set_blocking($fsock0);
         
stream_set_timeout($fsock$timeout);
         while    (!
feof($fsock)) $responce .= fread($fsock,4096);
         
fclose   ($fsock);
  }
  return 
$responce;
}

function 
alert($textalert){
wb_message_box($window$textalert"Alert"WBC_INFO);
}

?>
Сайт выбрал который долго грузиться,сам посмотри...Пока сокс не выполниться,тоисть весь скрипт,ты ничего не можешь сделать...так же само если и место
$a = sql("http://www.model.poltava.ua");
вставить sleep(20);
он зависнет,или любую долгую операцию...
Ну извините меня,но зачем для таких простых целейю юзать php? Ведь тоже самое можно с средними знаниями написать на Сях,с многопоточностью(нормальн й!),или даже на дельфях.Но накой член,мучить компьютер бамкомпилами? Извращение,мне своего мнения не изменить
Или уж на крайний случай юзайте Perl, там тоже есть консольное окошко,тоже перед однокласниками можно понтонуться крутым софтом
 
Ответить с цитированием

  #26  
Старый 14.11.2009, 16:51
Аватар для Mixon
Mixon
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме:
12333903

Репутация: 238
Отправить сообщение для Mixon с помощью ICQ
По умолчанию

тогда вставь место
$a = sql("http://www.model.poltava.ua");
цыкл долгий,например:
for ($i=$i; $i>-1; $bezk++){
echo $i;
}

в консоли будет видно что сам скрипт исполняеться нормально и без тормозов,выводит числа,а вот окно с интерфейсом всёравно зависает до исполнения пхп скрипта...Просто бамкомпиль я так понял росчитан на лёгкие скрипты,а если скрипт росчитан на постоянную роботу,тоисть всё время обрабатывать данные,то пока он их обрабатывает то и интерфейс зависший...выхода нету я так понял?



Цитата:
Сообщение от m0Hze  
Ну извините меня,но зачем для таких простых целейю юзать php? Ведь тоже самое можно с средними знаниями написать на Сях,с многопоточностью(нормальн й!),или даже на дельфях.Но накой член,мучить компьютер бамкомпилами? Извращение,мне своего мнения не изменить
Или уж на крайний случай юзайте Perl, там тоже есть консольное окошко,тоже перед однокласниками можно понтонуться крутым софтом
жжошь,мы тут сейчас обговариваем зависание бамкомпиля,а ето самый елементарный пример показать его зависание,а как таково то у меня уже на нём написан спамер на 400 строк кода уже с полностью написаным интерфейсом Вот только фигня в том что если етого зависания не избавиться то 3 дня под ряд что я просидел за написанием скрипта етого пойдут в попу,ото где обидно будет,что сидел по 1 пикселю выставлял етот интерфейс только сутки!

Последний раз редактировалось Mixon; 14.11.2009 в 16:56..
 
Ответить с цитированием

  #27  
Старый 14.11.2009, 16:57
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

Если ты не осознал/впитал то, что было писано выше - то да, выхода нет. Или просто недостаточно опыта. CURL тут не поможет. GUI на PHP требует высшей квалификации.
 
Ответить с цитированием

  #28  
Старый 14.11.2009, 17:02
Аватар для m0Hze
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Цитата:
Сообщение от Mixon  
жжошь,мы тут сейчас обговариваем зависание бамкомпиля,а ето самый елементарный пример показать его зависание,а как таково то у меня уже на нём написан спамер на 400 строк кода уже с полностью написаным интерфейсом Вот только фигня в том что если етого зависания не избавиться то 3 дня под ряд что я просидел за написанием скрипта етого пойдут в попу,ото где обидно будет,что сидел по 1 пикселю выставлял етот интерфейс только сутки!
Что я могу сказать? Ты дурак. За 2 недели реально понять принцыпы Пер-ла,и писать на нем неплохие скрипты,не мучая людей и форум тупыми вопросами,про эту недоделаную конвертацию пхп в машинный код.Будь умнее,не трать время зря.Хочеш писать актуальный софт - пиши его на C++\C#\java, но никак не на php.Побереги свое время
 
Ответить с цитированием

  #29  
Старый 14.11.2009, 17:06
Аватар для Mixon
Mixon
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме:
12333903

Репутация: 238
Отправить сообщение для Mixon с помощью ICQ
По умолчанию

не мучая людей и форум тупыми вопросами,если не ошибаюсь то ета тема именно об этой софтине...
а насчёт того что времени и нервов много потратил то ето реально так...не зря d_x мне говорил,не страдай фигней в виде етих бамкомпиль,нет же,не послушал...
Спс всем кароч,погнал просто на php переписывать
 
Ответить с цитированием

  #30  
Старый 22.01.2010, 01:01
Аватар для попугай
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме:
2459557

Репутация: 606


По умолчанию

Хорошая статья.

А формы рисовать для бамкомпилера нужно вручную ? Нет каких либо тулз, как IDE для С++, delphi и прочих ?



Цитата:
Сообщение от Pashkela  
curl не пойдет для таких целей - кури неблокируемые сокеты, или задавай конкретные вопросы, что именно не получается с сокетами, тогда будет конкретный ответ (куски кода обязательны, а также подробное описание той задачи, которую надо выполнить, а не общие твои домыслы)

PS: sleep - не выход, выполнение sleep есс-но влияет на работу всего приложения, т.е. если юзать sleep - то, пока пауза, ничего нажать не получиться. Тем более 10 секунд.

Вот функция с неблокируемыми сокетами которая подойдет для парсинга любой URL (кроме https):

PHP код:
function sql($url) {
  
$patern "/^(http:\/\/)?([^\/]+)/i"
  
$source_host preg_match($patern$url$rezz);
  
$host $rezz[2];
  
$url1 "GET $url\n"// Тут GET можно поменять на POST, к примеру
  
$responce ""
  
$timeout 30// На Ваше усмотрение
  
$fsock    fsockopen($host80$errnum,$errstr,$timeout); 
  if (
$fsock) {  
         
$headers  $url1;
         
$headers .= "Host: $host\n"
         
$headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n"
         
$headers .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n"
         
$headers .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\n"
         
$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\n"
         
$headers .= "Keep-Alive: 500\n"
         
$headers .= "Connection: close\n"
         
$headers .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n"
         
fwrite   ($fsock,$headers); 
         
stream_set_blocking($fsock0);
         
stream_set_timeout($fsock$timeout);  
         while    (!
feof($fsock)) $responce .= fread($fsock,4096);  
         
fclose   ($fsock);
  }
  return 
$responce;       

пример вызова:

PHP код:
$a sql("http://rambler.ru"); 


А зачем кстати нужны эти неблокирующие сокеты? Какие премущества? Я всегда юзал тупо fsockopen, fwrite, while(!feof, fgets - работало. С неблокирующими лучше?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



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


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




ANTICHAT.XYZ