LINUX.ORG.RU

кто-то предельно криво написан

если ты писал то давай сорцы иначе ты не в тот форум забрёл

cvv ★★★★★
()
Ответ на: комментарий от cvv

Сокет - пока на локалхосте. Причина не в линии...

На php примерно так:

$fd = fsockopen("localhost", 4000); if(!$fd) {print("<p><font color = \"red\">Unable to open server connection</font><br>");} else { fputs($fd, $request); //pass request to search server while(!feof($fd))//print results { $result = fgets($fd, 1024); print($result); } fclose($fd); //close socket connection } }

На сях серверный сокет просто сидит и слушает. сам он не тормозит, потому как проверяла CGI-бинарником с сей...

anonymous
()
Ответ на: комментарий от anonymous

Сорри за форматирование:

$fd = fsockopen("localhost", 4000);
if(!$fd)
{print("<p><font color = \"red\">Unable to open server connection</font><br>");}
else
{
fputs($fd, $request); //pass request to search server
while(!feof($fd))//print results
{
$result = fgets($fd, 1024);
print($result);
}
fclose($fd); //close socket connection
}

}

Как видите, все просто... прямо как в учебнике :)

anonymous
()
Ответ на: комментарий от anonymous

я в пхп не очень но мне ненравится два следующих момента

1) fputs($fd, $request); //pass request to search server

скорее всего здесь данные неуходят на сервер а застряют в какомто - кеше/буфере.

2) while(!feof($fd))//print results { $result = fgets($fd, 1024); print($result); }

очень кривое слушание сокета. радуйся что оно вообще работает

cvv ★★★★★
()
Ответ на: комментарий от anonymous

> Сорри за форматирование:

используйте Preformated Text! отступы терятся.

> fputs($fd, $request);

вообще-то stdio и sockets не очень хорошо сочетаются.

к тому же, я думаю, вам нужен TCP_NODELAY, иначе ваш
$request может висеть в очереди довольно долго.

если это perl, что это за fputs() и feof() ?

кстати, eof() на socket - совсем плохая идея.
уж лучше while (<>) идиома.

idle ★★★★★
()
Ответ на: комментарий от idle

Это php-шный код. :) Насколько мне, начинающей в php, известно, в этом языке все сокеты воспринимаются как файловые дескрипторы...

anonymous
()
Ответ на: комментарий от anonymous

Тьфу, я хотела сказать, что fsockopen, в отличие от socket() работает с сокетом в режиме файлового потока... хотя, возможно, просто перейду на другие функции... всем спасибо

anonymous
()
Ответ на: комментарий от idle

>если это perl

что с тобой??

ето пхп.

а заглянь-ka в соседний тред gtk vs Qt. там сильно нехватает твоей светлой головы

cvv ★★★★★
()
Ответ на: комментарий от Whaler

Хотелось бы знать еще: сокетные функции вроде socket_create, socket_read - они работают с какой-то библиотеки, которую надо доставлять, или просто нужно PHP переконфигурировать с опцией --enable-sockets?

Плиз, кто может, подскажите...

anonymous
()
Ответ на: комментарий от idle

>вот, теперь буду знать, что php выглядит почти как perl :)

мне он больше С напоминает

cvv ★★★★★
()

Сервер на С, а клиент на PHP. Гениально! Может ещё на visual basic'e клиента сделаешь?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.