Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字无法通过网络传输数据_Java_Php_Networking_Sockets_Knopflerfish - Fatal编程技术网

Java套接字无法通过网络传输数据

Java套接字无法通过网络传输数据,java,php,networking,sockets,knopflerfish,Java,Php,Networking,Sockets,Knopflerfish,我遇到了一个奇怪的问题,Java Knopflerfish客户端包和PHP CLI之间的套接字,而不是web服务器 当客户机/服务器对都位于本地主机上并且所有数据都成功传输时,它们工作正常。但是,当Java客户机存在于另一台机器上时,与服务器的连接是成功的,但PHP脚本没有收到任何数据。数据包分析确认Java客户端发送的数据是由服务器接收的——PHP似乎在获取数据时遇到了问题 作为进一步说明,我使用telnet作为客户端进行了一些测试。PHP服务器脚本从任何主机接收所有数据。这让我相信这个问题与

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

当客户机/服务器对都位于本地主机上并且所有数据都成功传输时,它们工作正常。但是,当Java客户机存在于另一台机器上时,与服务器的连接是成功的,但PHP脚本没有收到任何数据。数据包分析确认Java客户端发送的数据是由服务器接收的——PHP似乎在获取数据时遇到了问题


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

您可能忘记刷新客户端的缓冲区。telnet对每条线路都进行刷新,这就解释了它为什么工作。

结果表明这是一种竞争条件。如果我在接收到连接后和执行套接字读取之前睡眠几毫秒,这会很好地完成任务。

您的PHP脚本有一个错误/它不遵循Java应用程序的协议Application协议,而不是TCP。因此,发布一些PHP代码。我怀疑这可能也是问题所在,但得到证实,我已经在客户端上进行了刷新。此外,如果我没有刷新,我认为我不会在服务器上接收数据包,对吗我可以在wireshark看到他们。