Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

как обойтись без fsockopen

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> как обойтись без fsockopen
Имя
Сообщение << Старые топики   Новые топики >>
как обойтись без fsockopen - 2008-08-08 23:26:32.790000   
BW07

Сообщений: 43
Оценки: 0
Присоединился: 2007-09-22 18:29:37.170000
функцию
$connection = fsockopen( $host_ip, $port; $errno, $errstr, $time, );
пытаюсь заменить на:

$host_ip = gethostbyname("localhost"); $s=socket_create(AF_INET, SOCK_STREAM, 0); if(!($res=@socket_connect($s, $host_ip, $port))) die("Can't connect"); print("&lt;P&gt;Connected");
но при первом варианте дальше работает и при втором вылетает ошибка

$char = fgetc($connection)
Post #: 1
RE: как обойтись без fsockopen - 2008-08-09 00:43:33.540000   
}{roft

Сообщений: 159
Оценки: 0
Присоединился: 2007-11-08 17:18:30.900000
Не пойму что за третий параметр здесь: $s=socket_create(AF_INET, SOCK_STREAM, 0);

Вообще то создать вот так надо: $s=socket_create(AF_INET, SOCK_STREAM, SOL_TCP); Третий парметр указывает на тип соединения, а ты 0 ставишь.
Post #: 2
RE: как обойтись без fsockopen - 2008-08-09 01:17:18.400000   
BW07

Сообщений: 43
Оценки: 0
Присоединился: 2007-09-22 18:29:37.170000
"в последнем параметре можно указать число 0, потому что тип протокола и так указали."
я так уже делал все работало.
пробовал заменить не получилось
Post #: 3
RE: как обойтись без fsockopen - 2008-08-09 01:35:46.400000   
}{roft

Сообщений: 159
Оценки: 0
Присоединился: 2007-11-08 17:18:30.900000
Тогда дело в PHP. Поддержка сокетов настроена?
Post #: 4
RE: как обойтись без fsockopen - 2008-08-09 02:23:06.573333   
BW07

Сообщений: 43
Оценки: 0
Присоединился: 2007-09-22 18:29:37.170000
работает в других скриптах(где не пытался заменить)
простой фтп клиент на сокетах рабит думаю все настроено библиотеку выкачал
Post #: 5
RE: как обойтись без fsockopen - 2008-08-09 03:04:47.916666   
}{roft

Сообщений: 159
Оценки: 0
Присоединился: 2007-11-08 17:18:30.900000
Поподробнее…Ошибка какая вылетает?

Попробуй это:
$error_code=socket_last_error($socket); echo socket_strerror($error_code);
Post #: 6
RE: как обойтись без fsockopen - 2008-08-09 22:10:53.183333   
BW07

Сообщений: 43
Оценки: 0
Присоединился: 2007-09-22 18:29:37.170000
ошибка вылетает в $char = fgetc($connection);
"Warning: fgetc(): supplied resource is not a valid stream resource in Y:\home\test10.ru\www\dc\dc.php on line 63"

но похоже fsockopen() и socket_create(), socket_connect() для разных целей

"fsockopen() возвращает указатель файла, который может использоваться другими функциями (такими как fgets(), fgetss(), fputs(), fclose() и feof())"

или можно воспльзоватся функцией fgetc() с socket_create(), socket_connect()?
Post #: 7
RE: как обойтись без fsockopen - 2008-08-09 23:01:04.823333   
}{roft

Сообщений: 159
Оценки: 0
Присоединился: 2007-11-08 17:18:30.900000
Эх…не понял я первый пост твой до конца…Конечно…
Для того чтобы ответы сервера читать, если ты воспользовался функцией socket_create() делаешь так:
socket_connect($socket,$addres,$port); //Создаешь соединение с другим сокетом socket_read($socket,$length,$type);//Считываешь ответы сокета сервера socket_write($socket,$buffer,$length);//Посылаешь информацию сокету серверу Если же используешь функцию fsockopen() - тогда конечно можно использовать функции как при работе с файлами.
Post #: 8
Страниц:  [1]
Все форумы >> [Веб-программинг] >> как обойтись без fsockopen







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.