PDA

Просмотр полной версии : вопрос по php + sockets


md5f1h
06.04.2008, 16:20
допустим я открыл сокет как его убить если в течении 2х секунд не пришел ответ?
//всем спасибо вроде сам разобрался
теперь вопрос в другом как просто сделать чтоб сокет изночально жил 2 сек независимо от результата

Sharky
06.04.2008, 17:29
ставь таймаут в 2 секунды

nerezus
06.04.2008, 17:30
http://php.net/fsockopen

md5f1h
06.04.2008, 17:39
не дохнет сокет @fsockopen(...., $errno, $errstr, 2);\<- вы про этот тайм аут чтоль? :) сокет должен сдохнуть во время того когда на него поступают данные stream_set_timeout() неподходит именно по этой причине

J-Run
06.04.2008, 19:34
socket_set_timeout в помощь ;)

nerezus
06.04.2008, 19:47
заводить поток с сокетом и убивать его через 2 сек.

Небольшая трабла в том, что в пъхп нет потоков.

md5f1h
06.04.2008, 20:20
можно впринципе поставить время выполнения скрипта на 2 сек и организовать псевдомногопоточность но это мешает моим религиозным взлядам у кого нибудь есть идеи получьше?

J-Run
06.04.2008, 21:03
$fp = fsockopen($domain,$port)
fwrite($fp, $query);
socket_set_timeout($fp,2); // через 2 сек сокет сдохнет
while($str = fgets($fp,512))
..................
так-то чем плохо?

md5f1h
06.04.2008, 21:07
будет работать только в случае если на сокет ничего не идет
по крайней мере у меня так выходило :)

nerezus
06.04.2008, 21:47
подобный софт на пхп не пишется.
P.s. хотя можно через экстеншн.

KSURi
06.04.2008, 21:58
Создать _неблокирующий_ сокет и закрыть его через 2 секунды

nerezus
08.04.2008, 10:58
Ксурент суко умный)) догадался.