【发布时间】:2011-09-30 09:54:08
【问题描述】:
我正在开发一个可靠的基于 UDP 的文件共享程序。该程序由两部分组成。 服务器和客户端。 任何客户端都可以请求下载任何文件。发生这种情况时,服务器应通知拥有要下载的文件的客户端有人想要下载该文件。然后,服务器应该以某种方式向尝试下载文件的客户端指示拥有该文件的客户端的 IP 和端口。
程序快完成了。包括 ACKing 机制。但我有一个问题在过去的几个小时内无法解决。如果我在与我的服务器相同的机器上启动程序的客户端部分,然后在另一台机器上打开客户端的另一个实例,一切都很好。但是,如果我在一台机器上打开服务器并在不同机器上打开客户端程序,我无法将文件从一个客户端发送到另一个客户端。我不知道什么可能导致这个问题。如果您给我您的电子邮件,我很乐意向您发送解决方案我不想在这里发布 1000 行代码。
编辑: 好的。我尝试了所有可能的情况,但仍然没有解决方案。我开始考虑问题可能与程序无关,可能与我的网络连接有关。 我用作服务器的计算机使用以太网直接连接到路由器,但其他计算机使用无线连接。我不确定它是否有区别?我还尝试在我的一台无线计算机上运行服务器应用程序,但其他计算机无法连接到它。所以看起来问题与无线网络有关。
【问题讨论】:
-
本问答论坛不鼓励提供离线帮助,因为它旨在使所有访问者受益,而不仅仅是提问者。如果您可以将问题提炼成一个展示该问题的小示例程序,您就更有可能获得帮助。这样做,您甚至可能自己发现错误。
-
Marcelo 的意思是,这个网站不是一个论坛。
-
@Cody:我指的是古典(字典)意义上的“论坛”。
-
@man 当然,您可以比“无法发送文件”更好地报告!例如:你收到数据包了吗?
-
netstat显示什么?也许您只在环回上收听......另外,做一些tcpdump/wireshark看看网络级别发生了什么
标签: c++ networking client udp wireless