我在 Windows 7 Pro 计算机上将文件发送到 FTP 站点时遇到了问题。我没有在同一台设备和 Windows XP 计算机之间或 Windows XP 计算机和 Windows 7 计算机之间看到同样的问题。我不熟悉 Windows 7(这是我曾经使用的第一台计算机),所以我正在寻找在 Windows 7 端进行调试的技巧和技术。
我的设置是:
康耐视 5600 相机根据事件通过 FTP 发送小文本文件。(可以简单地将其视为通过 FTP 生成数据的嵌入式系统)
运行 FTP 站点的 Windows 7 Pro 计算机
Windows XP 机器运行等效 FTP 站点,但还托管一个用 C# 编写的测试程序,该程序可以复制相机发送的数据。
我目前看到的情况是:
我可以将相机对准 XP 系统并以最多 30mS 的周期时间发送数据,而相机不会报告任何错误。
我可以将 XP 系统指向 Windows 7 系统并模拟相机,并以 30mS 的周期时间发送数据,没有明显的错误。
当我将摄像头对准 Windows 7 系统时,FTP 传输立即失败,摄像头报告FTP 错误 125 - 数据连接已打开,正在开始传输。即使我将循环时间减慢到 500 毫秒,也会发生这种情况。发生这种情况时,FTP 目录中根本不会显示任何数据。
从所有这些来看,我的假设是,相机对 FTP 协议的处理不够严谨,而 XP 则忽略了这种情况,而 Windows 7 却对其进行了限制并触发了错误。
因此我需要仔细观察并查看相机和 Windows 7 之间正在进行的对话。
从根本上讲,我会Wireshark但是我可以使用 Windows 7 的特定功能从另一个角度查看数据吗?
编辑
我使用 wireshark 玩得很开心,检测到了摄像头与 Win 7 和 XP 与 Win 7 之间的 FTP 响应差异。但是我不确定哪个网络堆栈工作正常,我已向摄像头制造商提交了案例。
有趣的部分如下:
- XP系统打开与Win7系统的连接
- 它先发送 STOR 命令,然后发送数据
- Win 7 系统响应 ACK 和“125 数据连接已打开”
- XP 系统发送带有文件有效载荷的 FTP-DATA 数据包
与之比较:
- 相机打开与Win7系统的连接
- 它先发送 STOR 命令,然后发送数据
- Win 7 系统响应 ACK 和“125 数据连接已打开”
- 相机发送 ACK 数据包
- 摄像机发送带有 RST 和 ACK 的 FTP-DATA 数据包,但没有实际数据
- Win7系统响应“550指定的网络名称不再可用”
- 相机发出 FTP 退出请求。
你知道谁是对的吗?
第二次编辑
我在 Windows 7 机器上安装了 32 位 FileZilla FTP 服务器,问题解决了。我仍然不知道哪个 FTP 堆栈有问题,但我现在并不担心,因为我有一个可行的解决方案。然而,我确实发现这种情况令人担忧。
答案1
您使用什么作为 FTP 服务器?只是 Windows 内置的 FTP 服务器吗?您是否尝试过使用其他替代方法,例如FileZilla 服务器?