想做一个手机客户端和服务器端通信的项目,语言和数据库说明!

想做一个手机客户端和服务器端通信的项目,语言和数据库说明!,第1张

1-计算机语言的鼻尖是C语言,而在时代的进步中,衍生出了许多新的语言,java c++ html等

2-一般来讲,java是一种比较通用和非常强大的语言,他的类有许多种而且应用比较广泛。

3-安卓系统自从引入到智能手机操作系统后,就借助了java的编程模式和各种组合的开发模式,源代码免费开放。

4-安卓的服务端就是用的java语言。

可以的,只要通信的IP是通的就行了。

有两种方案:

1、在PC机上建立服务器,手机与手机之间的通信通过服务器进行中转

2、一部手机作为服务器,另一部手机作为客户端接入该手机

一般是第一种方案

1、pc端:

serverSocket=new ServerSocket(5648); //在5648端口进行侦听

Socket sk = serverSocketaccept();//如果有接入,则创建对应的socket;

2、手机端:

socket=new Socket("tobacco5648xicpnet",5648);//连接socket

3、消息输入输出:

pw=new PrintWriter(socketgetOutputStream()); //消息输出

pwprintln("发送消息");

pwflush();

br=new BufferedReader(new InputStreamReader(socketgetInputStream())); //消息接收

while((str=brreadLine())!=null){

//接收消息

}

PhoneGap与Android之间通信实现原理

PhoneGap为移动开发者带来了全新的开发模式,使用javascript调用移动设备的本地接口,这样,你就可以在js中调用你手机的摄像头,文件系统等等功能,理论上来说,你的本地应用程序可以访问的接口都可以通过javascript来调用了。不得不说,这样功能实在是很强大。既能使用javascript,html等web技术来实现程序,又能通过统一的接口来调用本地接口。兼具了web应用与app应用的特点。

安卓是建立在linux上的虚拟机,除了底层硬件的调用和inux有点关系之外的话,其他功能的实现基本上都是和linux无关的!你说的NDK的全称是Native Development Kit,这里说的应该是Android NDK,我们说这个应该是一个C、C++的开发工具包,或者可以理解为开发框架或者开发环境。以前开发安卓应用使用的是java现在使用了NDK之后就实现了C、C++的应用开发!这里我找到了一篇博客就是关于安卓NDK的,粘在下面给你参考一下:/devinzhang/archive/2012/02/29/2373729html

用HTTP协议就可以了,具体如下:

服务端开发:

1、开发ASPNET服务端,如1aspx

2、为1aspx定义各种参数,POST或者GET方式都可以

3、1aspx根据参数值来做各种行为及逻辑结果显示,可以以JSON、XML等形式直接ResponseWrite(结果);ResponseEnd();

安卓客户端:

1、访问远程aspx文件,将参数传给它,得到结果

2、对结果进行解析及后续的各种逻辑操作

做过安卓开发的朋友或多或少都遇到过让人厌恶的类似于“could not read ok from ADB Server”的错误。产生这个错误的原因可能多种多样,每次遇到问题的时候,可能大部分人都和我一样,去google一下这个问题别人是如何解决的。假设一下子找到解决了,就放过,下次在遇到的时候同样的再去google一下就好了。但是,这样不是正确的治学态度,为此孔祥子决定去扒一扒!

如下,是我在发现Android studio连接不上手机的时候,尝试去启动一个adb server,但是失败了。

<pre>

根据问题提示,5037端口被占用了。下面就来看看到底是哪一个端口被占用。

<pre>

C:\Users\zxy>netstat -ano | findstr "5037"

TCP 127001:5037 0000:0 LISTENING 7912

TCP 127001:5037 127001:50025 ESTABLISHED 7912

TCP 127001:5037 127001:56501 ESTABLISHED 7912

TCP 127001:50025 127001:5037 ESTABLISHED 7120

TCP 127001:56501 127001:5037 ESTABLISHED 1264

</pre>

果然,5037被进程id为7912的进程占用了。顺藤摸瓜,看看到底什么进程捣的鬼,

<pre>

C:\Users\zxy>tasklist | findstr "7912"

romaster_daemonexe 7912 Console 1 3,024 K

</pre>

看到了吗,是这个进程romaster_daemonexe ,好了,到此为止找出来是哪一个程序了,下面打开任务管理器,kill掉就可以了。

Android adb(Android Debug Bridge) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。

该工具作为一个客户端-服务器程序,包括三个组件:

客户端(adb client) ,该组件发送命令。客户端在开发计算机上运行。可以通过发出 adb 命令从命令行终端调用客户端。

这里说的客户端,其实包含很广泛。例如我们在命令行窗口运行一个adb命令,其实就是一个adb客户端。还有,我们在android studio中通过点击运行或者调试按钮,app就安装到手机里面了,这个也可以看做是adb客户端。对应的后台进程名称 根据运行的程序的不同而不同。

后台程序 ,该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。

也就说,开发者测试手机或者模拟器上运行的后台进程,负责接收命令,并运行命令。这个名字对应应该是adbd

具体如下

服务端 ,该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。

您可以在 android_sdk/platform-tools/ 中找到 adb 工具

这个是在开发者自己的电脑上,运行的旨在管理adb客户端和手机端的后台程序通信的一个管理程序。

具体流程如下

启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令—所有 adb 客户端均使用端口 5037 与 adb 服务器通信。

然后,服务器设置与所有运行的模拟器/设备实例的连接。它通过扫描 5555 到 5585 之间(模拟器/设备使用的范围)的奇数号端口查找模拟器/设备实例。服务器一旦发现 adb 后台程序,它将设置与该端口的连接。请注意,每个模拟器/设备实例将获取一对按顺序排列的端口 , 这些端口包括用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:

模拟器 1,控制台:5554

模拟器 1,adb:5555

模拟器 2,控制台:5556

模拟器 2,adb:5557

以此类推

如上所示,在端口 5555 与 adb 连接的模拟器实例与侦听端口 5554 的控制台的实例相同。

注意 ,这里所说的端口都是开发者电脑上的端口。

我的理解,偶数端口用来实际的数据传输。奇数端口用来发送控制命令和连接用的,例如调试。(如果不正确请指出)

当服务器已设置与所有模拟器实例的连接后,您可以使用 adb 命令访问这些实例。由于服务器管理与模拟器/设备实例的连接,并处理来自多个 adb 客户端的命令,因此,您可以从任意客户端(或从某个脚本)控制任意模拟器/设备实例。

解读一下

注意:上图中的标识为**的区域的进程为后台守护进程。

Adb Server运行在开发者电脑上,任何adb client都要等待这个运行起来之后才能做后续的工作。电脑上的android studio或者eclipse等一些adb client和它交互。一旦adb client的命令被发送到手机中,并且被手机中的adbd接收之后,才能和手机交互。

然后在看一张更详细的图

这个图,详细的解释了我运行adb命令中的详细细节。

关于adb的详细命令可以参考: http://adbshellcom/commands 这个网站详。

看了之后,对于前面的5037被占用,导致无法连接手机的原因,我想,我们应该有了更深层次的理解。同时对于其他情况的不能连接手机,我们下次就会有了自己的思考了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 想做一个手机客户端和服务器端通信的项目,语言和数据库说明!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情