<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Perl, подвисание сокетов]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=2418&amp;type=atom" />
	<updated>2010-04-07T12:21:10Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=2418</id>
		<entry>
			<title type="html"><![CDATA[Perl, подвисание сокетов]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=32792#p32792" />
			<content type="html"><![CDATA[<p>Поможите советом, достопочтенные! Вкратце суть:</p><div class="codebox"><pre><code>use IO::Socket;
#...
$socket = IO::Socket::INET-&gt;new(
    PeerAddr =&gt; $host,
    PeerPort =&gt; $port,
    Proto =&gt; &quot;tcp&quot;,
    Timeout =&gt; 50,
    Type =&gt; SOCK_STREAM) || die &quot;Error: $!\n&quot;;

print $socket &quot;GET $dir HTTP/1.0\nHost: $host\n\n&quot;; 
while (&lt;$socket&gt;) { $str.=$_; }
close($socket);
#...</code></pre></div><p>Итого в процессе юзания скрипта - частые зависания сокета... Загуглил, пишут, что вроде как в таких случаях коннект происходит, но потом, в то время как скрипт ждет ответа, сервер по каким-то сугубо личным соображениям его не шлет. Вроде бы как можно решить 2-я путями: 1. select 2. blocking.</p><p>В первом случае вообще сути не понял. Все изъяснения по этому поводу непонятны и расплывчаты, да еще и не касающиеся данной проблемы.<br />Во втором случае не пойму куда вставлять замкнутый цикл с проверкой или просто неправильно понял способ проверки. Куда не вставлю цикл, результат один - зависание.</p><p>Линкольн Д. Штайн помог <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> Спасибо ему огромное! Проблема решена.</p>]]></content>
			<author>
				<name><![CDATA[enRai]]></name>
				<uri>https://linuxforum.ru/profile.php?id=4997</uri>
			</author>
			<updated>2010-04-07T12:21:10Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=32792#p32792</id>
		</entry>
</feed>
