代码之家  ›  专栏  ›  技术社区  ›  default

套接字编程Xp>Vista,Vista>Xp

  •  0
  • default  · 技术社区  · 15 年前

    从XP到Vista的传输效果很好,我可以得到一个在Vista上显示的图像流。但是,当我翻转它并将图像从Vista发送到XP时,它就不起作用了。我还尝试了一个本地的“拷贝”,也就是说,没有网络就可以得到一个图像流,这在Vista和XP上都适用。这是两台机器上完全相同的程序。

    我的网络消息类叫做 NetMsg . 它由一个 char* type char* data . 类型决定了我如何解释数据,这里没有问题。
    让我们给电脑打电话#1和#2。
    创建连接并在#1上标记要发送的区域时:
    #1发送类型RESIZE//以使#2上的窗口与我在#1上标记的区域大小相同
    002>
    003> #2收到上述两条消息后,发送类型请求_MORE//#2想要更多的imagedata
    #转到步骤1

    • 接收到的数据实际上可以是两个 NetMsgs . 我通过将数据分成几个部分来支持这一点
    • 收到的数据可能不完整,即我必须等待更多数据。我通过标记一个 网络消息 作为不完整的,在下一个数据传输完成它(以及第一步的组合)

    我不明白的是,这是伟大的工作时,从XP发送到Vista,但不是相反的方式。我错过了什么?

    一定要让我知道如果你需要代码的摘录,但是,它是相当大的。。。大约500行。。否则,我寻找已知的问题时,发送数据从Vista到XP。

    感谢任何帮助和/或反馈!

    3 回复  |  直到 5 年前
        1
  •  0
  •   JesperE    15 年前

    很难确切地说什么。但是,我强烈建议您为您的程序编写一个测试套件,并实现一个捕获这个特定问题的测试用例。这将使您更容易再现失败,并且尝试生成一个能够演示问题的最小测试用例通常是非常有益的。另外,当您有一个(全自动的)测试用例时,向其他人寻求帮助也比较容易。

        2
  •  0
  •   user122302    15 年前

    你真正需要做的是更详细地描述这个问题。“它不起作用”的原因可能有100个。

    你有什么数据吗?

    试着只发送几个字节,他们能通过吗?

    XP收到了吗?

    这里没有魔法,您必须从头到尾检查数据路径。

        3
  •  0
  •   default    15 年前

    推荐文章