我正在开发一个使用 Java 和 UDP 发送器和接收器的类项目。问题的前提是读取一个文本文件,将内容存储在一个数据包中,发送数据包,接收数据包,然后在屏幕上读出文件并在接收计算机上创建一个相同文本文件的新文本文档.
我有所有的工作。当我使用本地主机进行测试时,它似乎 100% 的时间都在工作。当我将它从我的笔记本电脑发送到我的 PC 时,它似乎 100% 的时间都在工作。但是,当我将它从我的 PC 发送到我的笔记本电脑时,它不起作用。
我有几个 System.out 调试语句来验证我发送的一些信息。我知道文本文件应该占用 7 个数据包。但是,每当我将它从我的 PC 发送到我的笔记本电脑时,它都会说我正在发送 46 个数据包。
我最初的想法是,数据包可能是乱序发送的。我发送的第一个数据包表明接收者应该期望接收多少数据包。我想也许出于某种原因,“46”可能表示大写“F”,所以我删除了所有大写“F”,它仍然说我正在发送 46 个数据包。
我想也许我一次发送了太多信息,所以我使用 Thread.sleep() 让我的接收器有时间跟上——这也不起作用。
最后,我在网上阅读了Oracle文档和一些帖子,发现UDP是不可靠的。所以,我假设它可能是这样的。但是,我只想验证这可能是问题所在。
或者,如果有人对可能导致问题的原因有更好的了解,那也很棒!
谢谢你的帮助 :)