我有代码:
$f = fsockopen('mail.myserver.com', 110); //POP3
echo fgets($f, 4096) . '<hr>';
fputs($f, "USER login@myserver.com\r\n");
echo fgets($f) . '<br>';
fputs($f, "PASS mypass\r\n");
echo fgets($f) . '<br>';
fputs($f, "LIST\r\n");
echo fgets($f) . '<br>';
fputs($f, "RETR 1\r\n");
到目前为止一直很好,但后来我有一个循环接收整个消息:
while (!feof($f))
{
echo fgets($f, 1280);
}
并且它需要永远,因为脚本等待超时开始 - 它永远不会自己检测到EOF。
如何检测EOF并在超时之前打破循环?如果我使用telnet,那么一切正常 - 以某种方式telnet客户端知道何时停止接收。