【问题标题】:C# Server / Client Application for Universal Windows Platform (UWP) apps通用 Windows 平台 (UWP) 应用程序的 C# 服务器/客户端应用程序
【发布时间】:2015-08-20 17:57:07
【问题描述】:

我需要设计一款将在 Windows Store 上架并让人们 下载并离线玩。

  1. 他们只需要在同一个 wifi 网络中就可以使用 UDP 找到彼此。
  2. 一个玩家将是主机,而其他玩家将是客户端。
  3. 所有客户端都将从主机发送/接收数据

我的问题是,

  1. UWP 是否支持 UDP 通信,就像那些基于 Windows 的客户端/服务器聊天程序一样,可以使用 UDP 发现主机。

  2. 游戏中的每一个动作都需要从主机发送/接收,什么是最好的通信方式?过去我会构建一个 ServiceHost 并使用 WCF 进行主机和客户端之间的通信。但似乎 UWP 没有这样的库。

  3. 我会将游戏记录,包括所有玩家的每一步移动都存储到主机设备中(一旦有互联网访问,它将上传到云端)。我应该将它保存到 SQLite 还是 SQL Server Compact?

感谢您的帮助。

迈克尔

【问题讨论】:

    标签: c# wcf client-server win-universal-app uwp


    【解决方案1】:

    UWP 是否支持 UDP 通信,就像那些基于 Windows 的 客户端/服务器聊天程序,可以使用UDP发现主机

    UWP 有 DatagramSocket 来支持 UDP 通信。但是要发现主机,您需要使用蓝牙和 WiFi-direct 等对等技术。在 UWP 中,你可以使用PeerFinder class。

    游戏过程中的每一个动作都需要从主机发送/接收, 最好的沟通方式是什么?

    WCF 有点重,如果逻辑不是很复杂,原始数据(字节)通信应该足够了。

    我会存储游戏记录,包括所有玩家的每一步移动到 主机的设备(一旦有互联网就会上传到云端 使用权)。我应该将它保存到 SQLite 还是 SQL Server Compact?

    您可以将记录存储在 SQLite 中,也可以将数据保存在纯文本文件中。我推荐使用 SQLite。

    参考资料:

    DatagramSocket sample

    【讨论】:

    • 感谢您提供的信息。这很有帮助。关于“原始数据通信”,是不是我在示例StreamSocket Sample 中找到的“StreamSocket”?我们团队的大多数成员都是网络程序员,我看到 Windows 10 IoT 可以将 Node.js 嵌入到 App 中,我的 UWP 是否也可以嵌入 Node.js?这样我们就可以使用 HTTP get/post 进行数据通信。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多