Java套接字无法通过网络传输数据
我遇到了一个奇怪的问题,Java Knopflerfish客户端包和PHP CLI之间的套接字,而不是web服务器 当客户机/服务器对都位于本地主机上并且所有数据都成功传输时,它们工作正常。但是,当Java客户机存在于另一台机器上时,与服务器的连接是成功的,但PHP脚本没有收到任何数据。数据包分析确认Java客户端发送的数据是由服务器接收的——PHP似乎在获取数据时遇到了问题Java套接字无法通过网络传输数据,java,php,networking,sockets,knopflerfish,Java,Php,Networking,Sockets,Knopflerfish,我遇到了一个奇怪的问题,Java Knopflerfish客户端包和PHP CLI之间的套接字,而不是web服务器 当客户机/服务器对都位于本地主机上并且所有数据都成功传输时,它们工作正常。但是,当Java客户机存在于另一台机器上时,与服务器的连接是成功的,但PHP脚本没有收到任何数据。数据包分析确认Java客户端发送的数据是由服务器接收的——PHP似乎在获取数据时遇到了问题 作为进一步说明,我使用telnet作为客户端进行了一些测试。PHP服务器脚本从任何主机接收所有数据。这让我相信这个问题与
作为进一步说明,我使用telnet作为客户端进行了一些测试。PHP服务器脚本从任何主机接收所有数据。这让我相信这个问题与java设置套接字的方式有关,或者与我不熟悉的网络问题有关。如有任何想法,将不胜感激。如果需要,可以发布代码示例。您可能忘记刷新客户端的缓冲区。telnet对每条线路都进行刷新,这就解释了它为什么工作。结果表明这是一种竞争条件。如果我在接收到连接后和执行套接字读取之前睡眠几毫秒,这会很好地完成任务。您的PHP脚本有一个错误/它不遵循Java应用程序的协议Application协议,而不是TCP。因此,发布一些PHP代码。我怀疑这可能也是问题所在,但得到证实,我已经在客户端上进行了刷新。此外,如果我没有刷新,我认为我不会在服务器上接收数据包,对吗我可以在wireshark看到他们。