PHP套接字无法发送

时间:2012-06-06 11:44:25

标签: php sockets graphite

我正在尝试将一些纯文本数据发送到我本地运行的石墨服务器,这里的代码是相同的:

<?php
error_reporting(E_ALL);

$address = '127.0.0.1';
$port = 2003;

$fsock = fsockopen($address,$port);

for($i=1;;$i++){

  $send = "dummy.metric.value ".$i." ".time();
  $sent = fwrite($fsock, $send, strlen($send));
  echo $send ." sent ".$sent."\n";
  sleep(4);
}

?>

没有错误,但石墨服务器不显示新数据。服务器正在运行,我可以通过nctelnet

发送数据

2 个答案:

答案 0 :(得分:2)

另外不要忘记检查carbon.conf,因为UDP监听器默认是关闭的。

这个选项欺骗了我,因为显然StatsD和Graphite在同一主机上使用TCP进行通信。我测试了用

插入度量标准
echo "test.foo 20 `date +%s`" | nc 192.168.10.10 2003

但是在阅读了手册之后,事实证明你必须在-c中添加-u以强制使用UDP。

希望这可以节省其他人一些时间。

答案 1 :(得分:0)

您正在打开TCP流 - 但是graphite uses UDP