0

我在 Java Knopflerfish 客户端包和 PHP(CLI,而不是 Web)服务器之间遇到了一个奇怪的套接字问题。

当两者都位于本地主机上时,客户端/服务器对工作正常,并且所有数据都成功传输。但是,当 Java 客户端存在于不同的机器上时,与服务器的连接成功,但 PHP 脚本没有接收到数据。数据包分析确认 Java 客户端发送的数据已被服务器接收 - PHP 似乎在处理它时遇到了问题。

作为进一步说明,我已经使用 telnet 作为客户端进行了一些测试。PHP 服务器脚本可以从任何主机接收所有数据。这让我相信这个问题与 java 设置套接字的方式有关,或者存在一些我不熟悉的网络问题。任何想法将不胜感激。如果需要,可以发布代码示例。

4

2 回答 2

0

您可能忘记刷新客户端的缓冲区。telnet 对每一行进行刷新,这样就可以解释它为什么起作用了。

于 2010-04-20T16:35:54.170 回答
0

原来这是一个比赛条件。如果我在收到连接后和执行 socket_read 之前睡了几毫秒,它就可以很好地解决问题。

于 2010-04-20T17:39:36.490 回答