我有一个关于php客户端的问题。
我可以做到以下几点:
1) 使用密码连接到tcp服务器
2) 从tcp服务器读取字符串
3) 将tcp服务器的xml字符串保存到文件中一次
4) 关闭连接
我想要的是:
1) 在循环中将tcp服务器的xml字符串保存到文件中 - 大约10秒的延迟(永不关闭)
技术信息:
我必须首先从服务器读取第一个头响应,例如“Hello stranger”。 将我的密码添加到字符串中并将其发送到服务器。 我已经顺利完成了这个过程。
TCP流(XML文件)从服务器结束字符为NULL(0x00)
我的代码:
<?php
$cfgPort = "666"; //that's not my port, server and pass :-D
$cfgTimeOut = "5";
$cfgServer ="myserver.pl";
$password = "donald";
$socket =fsockopen("$cfgServer",$cfgPort,$cfgTimeOut);
if (!$socket)
{
echo "Not conn\r\n";
}
else
{
echo "Conn!\r\n";
$key = fread($socket, 81);
//$key = fgets($socket, 82);
//what should I use fread or fgets ???
$key_password = $key.$password;
// log in
fwrite($socket, $key_password."\r\n");
//I checked response from server
echo fread($socket, 18);
//if authorized
//body response
$his = fread($socket, 2048);
$xml_clear = substr($his, 1, -1);
$file = 'xml.xml';
file_put_contents($file, $xml_clear);
fclose($socket);
}
echo "The end!\r\n";
?>
下一个问题:
我必须使用CRON来做吗?
在telnet中,我可以发送头数据包(密码),然后等待响应以保持连接。我能在PHP中做到吗?