|
|
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
Господа, помогите решить проблему. Есть сервер, который получает команды от клиента на выполнение. Возвращаемые результаты могут быть разной длины. Все они разделены \n. К примеру, отправляем команду на выполнение и ждем ответа. Ответ состоит из трех частей, разделенных \n Пробем получить все 3 ответа: Код: plaintext 1. 2. 3. 4. В результате мы получаем все эти ответы, но из цикла не выходим. Мы продолжаем ждать еще результатов, хотя их больше нет. Подскажите пожалуйста, как выйти из цикла, если сервер закончил передавать данные без какого-либо специального символа "конец выполнения" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 09:39:49 |
|
||
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 10:05:08 |
|
||
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
g613 Код: plaintext 1. 2. 3. ? Проблема в том, что в зависимости от результатов выполнения, может быть любое кол-во ответов. Либо 3, либо вообще 5. Да, довольно странный протокол, но все же что делать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 10:07:41 |
|
||
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
...анализировать ответ, в зависимости от полученного результата говорить внутри цикла last, иначе не знаю. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 10:30:08 |
|
||
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
g613...анализировать ответ, в зависимости от полученного результата Так в этом-то и проблема, что нечего анализировать. Т.е. нет определенного символа конца передачи данных. Вот такие бывают у китайцев девайсы :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:24:40 |
|
||
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
тогда могу еще предложить почитать perldoc -f select ( тот который с 4 параметрами ) и `читать из сокета до тех пор пока туда пишут'... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:14:13 |
|
||
|
(PERL) IO::Socket, как выйти из цикла, если сервер закончил передавать данные
|
|||
|---|---|---|---|
|
#18+
P.S. в твоем случае лудше наверное будет почитать perldoc IO::Select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:16:27 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=416&tid=1475980]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 344ms |

| 0 / 0 |
