我正在开发一个可靠的基于UDP的文件共享程序。该计划由两部分组成。 服务器和客户端。 任何客户端都可以请求下载任何文件。发生这种情况时,服务器应通知拥有要下载的文件的客户端,有人想下载该文件。然后,服务器应以某种方式向客户端指示正在尝试下载文件的IP和具有该文件的客户端的端口。
该计划差不多完成了。包括ACKing机制。但我有一个问题,我在过去几个小时内无法解决。如果我在与我的服务器相同的机器上启动程序的客户端部分,并在另一台机器上打开另一个客户端实例,一切都很好。但是,如果我在一台计算机上打开服务器并在不同的计算机上打开客户端程序,则无法将文件从一个客户端发送到另一个客户端。我不知道什么可能导致这个问题。如果您给我发电子邮件,我很乐意向您发送解决方案我不想在这里发布1000行代码。
编辑: 好。我尝试了所有可能的场景,仍然没有解决方案我开始考虑问题可能与程序无关,可能与我的网络连接有关。 我用作服务器的计算机使用以太网直接连接到路由器,但其他计算机使用无线连接。我不确定它是否有所作为?我还尝试在我的一台无线计算机上运行服务器应用程序,但其他计算机无法连接到它。所以看起来这个问题与无线网络有关。
答案 0 :(得分:0)
通常,您应该能够通过在客户端/服务器代码中进行适当的日志记录,以及从第一个客户端到第二个客户端的简单telnet / ping等来完成上述操作。
只是从评论中提出一些内容......在UDP上实现可靠的协议是一件棘手的事情,但是一个好的起点是假设你的代码被破坏并调查(如上面的步骤)首先... < / p>