gpt4 book ai didi

C++ UDP客户端问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:11 27 4
gpt4 key购买 nike

我正在开发一个可靠的基于 UDP 的文件共享程序。该计划由两部分组成。服务器和客户端。任何客户端都可以请求下载任何文件。发生这种情况时,服务器应通知拥有要下载文件的客户端有人要下载该文件。然后,服务器应以某种方式向尝试下载文件的客户端指示拥有该文件的客户端的 IP 和端口。

程序快完成了。包括ACKing机制。但是我有一个问题,在过去的几个小时里我无法解决。如果我在与服务器相同的机器上启动程序的客户端部分,并在另一台机器上打开客户端的另一个实例,一切都很好。但是,如果我在一台机器上打开服务器并在不同机器上打开客户端程序,我无法将文件从一个客户端发送到另一个客户端。我不知道什么可能导致这个问题。如果你给我你的电子邮件,我很乐意向你发送解决方案我不想在这里发布 1000 行代码。

编辑:好的。我尝试了所有可能的情况,但仍然没有解决方案。我开始考虑问题可能与程序无关,可能与我的网络连接有关。我用作服务器的计算机使用以太网直接连接到路由器,但其他计算机使用无线连接。我不确定这是否有所作为?我还尝试在我的一台无线计算机上运行服务器应用程序,但其他计算机无法连接到它。所以问题似乎与无线网络有关。

最佳答案

嗯,如果没有协议(protocol)的详细信息,很难判断问题出在哪里,但是这里有一些建议:

  1. 在服务器和客户端之间的协议(protocol)中,检查请求文件的客户端是否正确请求它。
  2. 接下来在服务器和第二个客户端之间,检查您的协议(protocol)是否发送了正确的请求
  3. 检查第二个客户端是否生成正确的响应(例如,我有文件或没有)
  4. 检查服务器是否正确处理了这个响应
  5. 检查服务器是否将第二个客户端的正确 ip 地址发送给第一个
  6. 检查第一个客户端是否具有到第二个客户端的网络连接(比如防火墙等)
  7. 检查客户端中的处理逻辑是否正确处理了响应。

通常,您应该能够通过在客户端/服务器代码中放入适当的日志记录,以及从第一个客户端到第二个客户端的简单 telnet/ping 等来完成上述操作。

只是从评论中移出一些东西...通过 UDP 实现可靠的协议(protocol)是一件棘手的事情,但是一个好的起点是假设您的代码已损坏并首先进行调查(如上述步骤)...

关于C++ UDP客户端问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com