我正在尝试使用PHP中的Socket编程来测试客户端 - 服务器通信。尝试在PHP参考站点上给出的一些示例后,通信正常。
但是,问题是我在缓冲区中出现了一些虚假或无效的字符。
php sockets invalid characters http://i60.tinypic.com/oqwyz4.png
当然,我可以使用正则表达式消除它们,但知道背后的原因会更好。
我认为this person也有同样的问题。
服务器源代码:
error_reporting(E_ALL);
set_time_limit(0);
$address = "tcp://192.168.1.60:9160";
$sock = stream_socket_server($address, $errcode, $errstring);
if (!$sock) {
echo $errcode.": ".$errstring."\n";
}
else {
do {
while ($client = stream_socket_accept($sock)) {
fwrite($client, "*** Welcome ***".PHP_EOL);
$input = trim(fgets($client, 2048));
if (!empty($input)) {
fwrite($client, "Server: ".$input.PHP_EOL);
}
else {
fwrite($client, "--- NO INPUT ---".PHP_EOL);
}
echo trim($input).PHP_EOL;
if ($fp = fopen("log.txt", "a+")) {
fwrite($fp, trim($input).PHP_EOL);
fclose($fp);
}
fclose($client);
}
} while (true);
}
fclose($sock);
任何帮助将不胜感激:)