none
StreamSocket问题 RRS feed

  • 问题

  • 为了能让同一台电脑上的Metro能和destktop端通信,我使用streamsocket来使两端进行通信,其中desktop作为server端而metro作为client端。

    现在有个诡异的问题是有些机器上可以通信而有些机器上metro端创建streamsocket失败了,使用抓包工具抓TCP包发现竟然抓不到。,但如果metro和远端的desktop 创建streamsocket的话是可以抓到TCP包的,求高手解释下这是什么情况啊,是不是本地desktop和metro通信用的不是TCP协议或者本地desktop和metro不能用socket通信。

    我查资料发现有的人说可以有的人说不可以,真的迷茫了。


    2013年4月26日 6:20

全部回复

  • 放火墙设置如何?

    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2013年4月28日 2:24
    版主
  • 同一台PC上不同进程间Socket与StreamSocket通信可以通信成功 ,但是此Win8程序是无法通过微软的审核的,我们之前做过类似的项目最后此应用是无法上Store的,我们当时可以通过WACK测试,但是在提交应用的审核的时候最终失败
    2013年4月28日 2:31
  • 有具体违反的条例项目吗? 这个我还真不知道。我也正在设想作这类的应用。

    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2013年4月28日 2:51
    版主
  • 有具体违反的条例:上传Store时,微软报告称内容审核方面无法通过,我们的应用因此无法上Store了;
    2013年4月28日 5:09
  • 当时我们的应用是WPF与Metro程序在本机进行通信,方法三使用Socket与StreamSocket进行通信,由于StreamSocket在发送Message时候前会先需要4个Byte的数据长度,我也把WPF端的Socket发送Message前加入消息的UInt32的数据长度内容,实现通信;当我们完成工程后发现在VisualStudio开发环境中能通信成功的程序[Debug时候2个程序能正常通信],当不在visual studio 开发环境运行后本机的2个程序无法正常运行,后来查了MSDN发现是LoopBack的问题,然后我又查了资料,在wpf段运行命令行解除限制,具体链接如下:

    http://blog.sina.com.cn/s/blog_a57b4c240101cyfv.html

    本以为解决了所有问题,但是最后微软还是称:内容审核方面无法通过,我们的应用因此无法上Store




    2013年4月28日 5:18
  • Bob,如果能有机会上传Store的话,我可以把我们过去完成的WPF+Metro Project发给你,你帮我们看下,如果真的能上Store,那就感激不尽了!
    2013年4月28日 5:20
  • http://msdn.microsoft.com/zh-cn/library/windows/apps/hh694083.aspx  具体那一条?

    这个吗?

    3.1 你必须只使用 Windows 运行时 API 来实现你的 Windows 应用商店应用的功能

    我们将在 Windows 应用商店应用 API 参考中介绍这些 API。你的应用只能依赖于 Windows 应用商店中列出的软件或者在 Windows 兼容中心中标记为 Windows 8 兼容的软件。

    Windows 应用商店应用不得通过本地机制(包括通过文件和注册表项)与本地桌面应用程序或服务进行通信。

    除非你的软件为软件的 Storefront 应用,否则该应用不能鼓励用户安装完成应用的主要价值所不必要的桌面软件。


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。


    2013年4月28日 6:19
    版主
  • Bob:

    应该就是此项条款。

    Bob,能否留下你的Email,我的AppPackage发到你Email,能否看下到底能否解决这个问题?我还是希望能有办法解决这个问题,你也好帮助我们确认此问题

    感谢


    2013年4月28日 6:43
  • Hi,

    在同一台机器上是没有办法使用metro和desktop的socket进行通信的,因为在开发环境下虽然可以进行通讯,但是似乎在应用的时候却没有办法通讯,曾经看到过相同的问题,似乎是by-design的设计。


    Aaron
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年4月29日 8:53
    版主
  • 感谢楼上几位大哥的解答,

    这几天我又查阅了下资料和摸索了一下,目前我们用的方法和JackSlaterYu 是同样的方法,当desktop起来的时候查注册表HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer 下的ID然后把它加到LoopbackExempt环回免除列表里来实现的,因为目前只是出DEMO所以先用这样的方法混过去了,如果以后要上传应用商店的话不知道使用转发远端服务器再从远端服务器转回桌面的方法行不行,这限制真是搞得人窝火啊。


    2013年4月30日 5:32
  • 难道说没什么方法能绕过这个限制嘛,不知道通过驱动程序行不行。
    2013年4月30日 5:36