Просмотр полной версии : вопрос по php + sockets
допустим я открыл сокет как его убить если в течении 2х секунд не пришел ответ?
//всем спасибо вроде сам разобрался
теперь вопрос в другом как просто сделать чтоб сокет изночально жил 2 сек независимо от результата
ставь таймаут в 2 секунды
не дохнет сокет @fsockopen(...., $errno, $errstr, 2);\<- вы про этот тайм аут чтоль? :) сокет должен сдохнуть во время того когда на него поступают данные stream_set_timeout() неподходит именно по этой причине
socket_set_timeout в помощь ;)
заводить поток с сокетом и убивать его через 2 сек.
Небольшая трабла в том, что в пъхп нет потоков.
можно впринципе поставить время выполнения скрипта на 2 сек и организовать псевдомногопоточность но это мешает моим религиозным взлядам у кого нибудь есть идеи получьше?
$fp = fsockopen($domain,$port)
fwrite($fp, $query);
socket_set_timeout($fp,2); // через 2 сек сокет сдохнет
while($str = fgets($fp,512))
..................
так-то чем плохо?
будет работать только в случае если на сокет ничего не идет
по крайней мере у меня так выходило :)
подобный софт на пхп не пишется.
P.s. хотя можно через экстеншн.
Создать _неблокирующий_ сокет и закрыть его через 2 секунды
Ксурент суко умный)) догадался.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot