gpt4 book ai didi

php - fsockopen-如何检测消息结束?

转载 作者:行者123 更新时间:2023-12-03 11:58:08 24 4
gpt4 key购买 nike

我有代码:

$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客户端以某种方式知道何时停止接收。

最佳答案

看:

Warning If a connection opened by fsockopen() wasn't closed by the server, feof() will hang. To workaround this, see below example:


开启: feof
解决方法实质上是等待 default_socket_timeout,然后终止while循环。

关于php - fsockopen-如何检测消息结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28050797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com