通用 Windows 平台 (UWP) 应用程序的 C# 服务器/客户端应用程序

C# Server / Client Application for Universal Windows Platform (UWP) apps

我需要设计一款纸牌游戏,可以放在 Windows 商店,让人们可以 下载并离线玩。

  1. 他们只需要在同一个 wifi 网络内,就可以使用 UDP 找到对方。
  2. 一个玩家作为主持人,其他玩家作为客户端。
  3. 所有客户端将从主机发送/接收数据

我的问题是,

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

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

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

感谢您的帮助。

迈克尔

does UWP support UDP communication, just like those Windows based client/server chat program, can discover the host using UDP

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

Each move during the game will need to send / receive from the host, what is the best way for the communication?

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

I will store the game record, including each move of all players into host's device (which will upload to the cloud once there's internet access). Should I save that to SQLite or SQL Server Compact?

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

参考文献:

DatagramSocket sample