|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : val khokhlov 2:550/180 27 Nov 2003 18:39:02 To : Vadim Tzirulnicov Subject : Чтение с хоста --------------------------------------------------------------------------------
27 Nov 03 17:06, Vadim Tzirulnicov wrote to All:
VT> print $data while sysread($socket,$data,1024);
VT> - сценарий считывает приветствие, но... не завершается. Завершается только
VT> тогда, когда получает timeout от binkd и закрытие хоста от онного.
только закрытие сокета, а не закрытие хоста :)
все правильно, в общем-то. если ты вставишь в цикл парный send
(syswrite), данные из sysread будешь складывать в буфер (и аккуратно
анализировать binkp-пакеты), а данные для send/syswrite будешь брать из буфера
(в который складываются binkp-пакеты), то получишь перловый binkp-мэйлер :)
правда, это все только при не-блокирующем io (см. fcntl)... но вот как
тогда отличить ситуацию "прочитайли 0 байт" от "сокет был закрыт"?
а прочитать "только приветствие" не получится, т.к. его нет. можно
просто разорвать связь после получения определенных пакетов (или по времени). но
для этого лучше читай описание binkp и спрашивай в ru.binkd
Good luck!
val
--- System uptime: 383 days, 23 hours, 50 minutes, 8 seconds
* Origin: I noore uu alasseo (2:550/180)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/18203fc63dd2.html, оценка из 5, голосов 10
|