Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将android应用程序与桌面应用程序连接的最佳方式?_Android_Database_Server_Desktop Application - Fatal编程技术网

将android应用程序与桌面应用程序连接的最佳方式?

将android应用程序与桌面应用程序连接的最佳方式?,android,database,server,desktop-application,Android,Database,Server,Desktop Application,我想开发一个在桌面应用程序和Android应用程序之间共享数据的系统。 搜索后,我发现我需要一个服务器在他们之间。但我不知道服务器是什么?我如何创建它?它将如何帮助我连接两个平台设备 桌面应用程序将从android应用程序接收数据。并管理数据。它还将用于向android应用程序发送通知/消息 Android应用程序将用于输入数据并将其发送到桌面应用程序。它将从桌面应用程序接收更新/通知 现在我如何连接这两者?我基本上需要一个用于实时数据共享和通知的公共数据库 编辑:我正在使用C#构建桌面应用程序

我想开发一个在桌面应用程序和Android应用程序之间共享数据的系统。 搜索后,我发现我需要一个服务器在他们之间。但我不知道服务器是什么?我如何创建它?它将如何帮助我连接两个平台设备

桌面应用程序将从android应用程序接收数据。并管理数据。它还将用于向android应用程序发送通知/消息

Android应用程序将用于输入数据并将其发送到桌面应用程序。它将从桌面应用程序接收更新/通知

现在我如何连接这两者?我基本上需要一个用于实时数据共享和通知的公共数据库

编辑:我正在使用C#构建桌面应用程序,使用Java构建android应用程序


Edit2:也许我可以使用PHP在CPANEL或000webhost上托管数据库。然后将其与android和C#连接。这是正确的方法吗?是否可以将其与C#连接?我知道它可以与Android连接,但不确定C#。Firebase支持web界面,因此您可以开发html代码并集成到桌面应用程序中,类似于windows窗体应用程序中的web集成。您不一定需要数据库。两个应用程序之间需要一个公共网络协议

所有网络通信都是通过套接字完成的。您需要一个允许通过套接字发送数据的库。例如

套接字绑定到计算机的特定端口,本质上使其成为“服务器”。很像web服务器都公开端口80,并通过称为HTTP的协议进行通信。这一点很重要,因为由您决定应用程序之间的通信协议,因为套接字只发送字节—它不关心您发送什么或如何发送,只要它发送到特定服务器上的端口即可。它也不会为您解析数据,这取决于您的应用程序来处理。例如,您的桌面应用程序如何知道Android设备向其发送了一条文本消息、要显示的一些图像或显示地图的地址

总而言之,您想要桌面应用程序而不是web应用程序的原因并不完全清楚。只解析来自映射到不同方法(通常称为RESTAPI)的不同HTTP路径的HTTP有效负载体要比构建自己的协议简单得多。您还可以在web服务器上构建桌面GUI

使用双向套接字架构,让桌面应用程序将更新发送回移动应用程序基本上是不可能的。您的Android不应该仅仅为您的应用程序连续运行开放式服务器套接字,这主要是因为电池耗尽,而是因为其网络地址可能会频繁更改,因此您还需要一个注册服务器,您的设备将从该服务器重新连接。这种服务以Firebase Cloud Messaging的形式存在,Firebase Cloud Messaging是谷歌GCM技术的翻版,它可以用于向设备发送推送通知,但只能使用较小的数据有效负载

有关Android设备上发生的活动的通知,请参见此处

回到关于数据库的问题。建议一个使用太广泛了。如果要存储和/或查询或加入数据集,则只需要其中一个。运行桌面应用程序的同一台计算机可以安装和运行您喜欢的任何类型的数据库,无论是关系数据库还是noSQL数据库,完全取决于您。我所知道的唯一实时数据库是RejectionDB和Firebase。

您也可以只保存一个SQLite文件,该文件相当于一个小规模数据库(甚至SQLite文档也建议将其用于低流量网站)。

当您搜索“实时数据库”时,返回了什么结果?提示:如果您不了解如何设置数据库服务器,请使用公共可用的托管数据库服务器。那么我应该使用Firebase?并将其与桌面和android应用程序连接?我只是感到困惑。你可以通过一些后台线程使用通知,我不知道C#客户端,但你可以检查一下。如果你想运行自己的服务器,RejectDB或Couchbase有C#clients在任何情况下,WebHost上的LAMP服务都可以正常工作,但肯定不是实时的