如何调试有效而不是随机的东西?

时间:2012-05-06 09:06:54

标签: php nntp

我正在使用Net_NNTP ->post()功能。这会将消息发布到NNTP服务器。然而,有时(30-50%的情况)消息的每一行的持续1或2个字符被截断。有时这很好用。

我真的找不到任何方法来复制这个;它不是关于插入消息中的文本等等,它不是关于服务器负载等...我根本就不理解它。

您认为我应该如何调试它?


这是一些示例代码,与PHP的类相同。

$sh = fsockopen('nntp-server', 119);
fwrite($sh, "POST\r\n");
fwrite($sh, $article);
fwrite($sh, "\r\n.\r\n");

$article总是一样的。服务器我正在连接到一个知道的可靠服务器的集群,我不认为这是问题!

这对我来说毫无意义。

2 个答案:

答案 0 :(得分:2)

  

然而(30-50%的情况)消息的每一行的持续1或2个字符被截断

如果您丢失了整行最后一行,可以说是非故意的软件错误。但如果你是 从每一行中丢失几个字节,这很可能是某些软件的故意行为。像强制自动换行或当你的行中的字符突然被错误编码(如utf)。也许这个NNTP服务器设置了每个石灰限制的字节数。

无论哪种方式,我都怀疑请求数据包在通过时和失败时是完全相同的。

答案 1 :(得分:0)

如果它取决于输入(即某些输入总是失败),只需使用xdebug等提供输入并逐步执行代码,同时检查变量。