android与pc通信
1. android服务端与电脑pc上c++的客户端 实现socket通信
1、android上的服务器分两种:
① 用 java 写的,这种比较简单,但是需要注意的它的代码已经被转换成了大端了,pc上用c++写传结构体;
② 用 c/c++ 写的,这种方式进行和pc上的通信比较的方便,客户端和服务器段可以都通过结构来传递,唯一需要考虑的是字节对其的问题,可以用两个预处理指令(可以跨平台的)处理;
2、源码的话,我虽然有但是属于公司的项目代码,不方便的;
我是ndk吧的吧主,希望大家关注一下ndk吧,有问题的话也可以到里面留言哦,ndk吧的链接:
http://tieba..com/f?kw=ndk 谢谢!
2. android怎么与pc上的进程进行rpc通信
理解Android系统的进程间通信原理(二)----RPC机制
理解Android系统中的轻量级解决方案RPC的原理,需要先回顾一下JAVA中的RMI(Remote Method Invocation)这个易于使用的纯JAVA方案(用来实现分布式应用)。有关RMI的相关知识,可以通过下图来归纳:
RMI原理 (2)
Android中的RPC也是参考了JAVA中的RMI方案,这里我们再详细了解一下RPC的实现过程。
Android中的RPC机制是为了实现一个进程使用另一个进程中的远程对象,它使用了Android自己的AIDL(接口定义语言),使用户很方便地定义出一个接口作为规范,通过一个远程Service为代理 ,客户端在绑定该远程Service过程中获取远程对象,进而使用该对象。可参考下图所示:
Android的RPC原理及应用 (2)
补充:RPC的另一个目的是对客户端只声明接口及方法,隐藏掉具体实现类,供客户端直接获取此接口实例。
实例代码:
实例一:通过Service来远程调用一个接口子类的函数方法
功能描述:在MainActivity中通过绑定MyService服务类,来远程调用MyPlayer(实现了IPlayer接口)的方法过程。需要定义一个IPlayer.aidl文件,ADT工具会自动生成一个IPlayer接口类,然后再由MyPlayer继承IPlayer接口类中的静态内部抽象类,实现接口方法,进而供其它应用程序远程调用。(在本例中为了方便,MainActivity与MyService类同处一个应用程序中,实现运用时,可以不在同一个应用程序中,只要有权限访问MyService服务,就能得到IPlayer接口,进而执行该接口实例方法)
程序清单:IPlayer.aidl
3. Android 手机通过usb 与 pc 进行通信,不要使用adb
没驱动恐怕是不行吧,没有驱动的话连接电脑就只是手机充电。就连豌豆荚,91这些软件都是要安好驱动在管理的。只是可以不打开sd卡进行sd卡的管理
4. android手机与pc通讯
Android手机和PC通信,即USB的通信支持有两种模式:
HOST模式:Android设备为USB总线和外设供电,数据传输是双向的。
Accessory模式:即附件模式,Android作为附件,手机和电脑连接,通常是这种模式,由USB Device端向总线供电,数据传输方向是双向的。这就是为什么手机插到电脑上可以充电的原因。
在讨论具体代码之前,需要先讲一下再host模式下面的调试办法,因为数据线的端口被外设使用了,那么,传统的连接数据线调试的方法已经不行了。官网给出了解决办法:
1、请把Android设备用数据线连接到电脑,当然,也要把Android设备的wifi打开。
2、在windows命令行下,进入SDKplatform-tools/目录(具体看SDK安装在哪个目录了),执行adb tcpip 5555回车。这里其实是打开了adb调试的无线端口(Android设备在电脑上的端口映射),其实后面的数字可以随便来,只要端口没有被占用。
3、adb connect <device-ip-address>:5555键入回车,这里的device-ip-address是Android端的IP地址。
4、最后adb usb回车,假如没有问题,现在已经可以在eclipse上看到logcat的输出了。
其实还有个简单的办法,可以在应用商店上下一个无线ADB工具,随便哪个都可以,这类工具就是在Android端做了上面的那些工作,而且还不用连数据线,但是第三步的那个操作还是要在windows的命令行窗口手动输入的。
5. 安卓系统怎么连接电脑
1、安装91手机助手:下载91手机助手,下载完成后双击图标并根据提示进行安装。
2、打开手机USB调试模式
①在安卓手机找到系统设置(设置)点击进入
②点击设置界面的【应用程序】
③点击【开发】
④打钩【USB调试模式】至此手机USB调试模式打开完成。
3、讲手机通过USB数据线插入电脑的USB端口
4、启动91手机助手
5、91手机助手会自动识别所插入的手机型号
并下载对应的驱动,驱动安装完成后手机即可被识别并连接到电脑
5、同时91手机助手将在你的手机内安装手机版,用于数据的同步。同时方便你在数据流量环境下下载安装游戏及应
安卓手机手动安装USB驱动连接到电脑
驱动下载:推荐下载各机型自己的驱动,没有的话可以尝试用万能驱动
安卓平台手机万能驱动点击下载
本驱动提供XP,Vista系统x86芯片的驱动,其中Vista系统还包括64位系统的专用驱动。针对AMD芯片也给出了专 门 的驱动,用户可以根据自己的芯片和系统进行选择。
开启手机中USB调试
进入“设置”->“应用程序”->“开发”勾选“USB调试程序”。这样设备才可以通过USB连线时被PC识别到。
方法一、手动安装驱动
将已经开启“USB调试”的手机通过USB线连接PC,下面就要开始手动安装驱动的过程。 右击“我的电脑”选择“属性”就进入“系统设置”页面。在“硬件”标签页打开“设备管理器”。
在“设备管理器”面板我们可以看到其中“Android USB Devices”设备有个黄色的感叹号,表示这个设备还不能正常使用,需要安装驱动。
系统会自动跳出硬件安装向导,如果没有跳出可以通过右击带有黄色感叹号的设备,选择“更新驱动程序”,我们事先需要下载好驱动程序,这里就不选择联网搜索驱动。
选择“从列表或者指定位置安装”
接着通过“浏览”找到下载好的驱动所在的文件夹(这里以Windows XP系统x86芯片为例)。
点击下一步向导就会开始安装驱动,经过十几秒Android驱动即可完成安装。
驱动安装完毕后,就可以看到“设备管理器“中Android USB设备的黄色感叹号已经去掉。
6. 如何将安卓手机连接到电脑 4种方法来将安卓手机连接到电脑
目录方法1:使用USB电缆连接Windows电脑1、用USB电缆把安卓设备连接到电脑。2、点击安卓屏幕上的通过USB给这台设备充电3、在“使用USB进行”下选择文件传输4、等待电脑安装驱动程序。5、打开Windows文件资源管理器。6、在文件资源管理器窗口中点击此电脑7、双击安卓设备。8、浏览安卓设备中的文件。9、完成后弹出安卓设备。方法2:使用USB电缆连接macOS1、在网络浏览器中访问 https://www.android.com/filetransfer2、点击立即下载3、打开下载的安装程序。4、把Android File Transfer图标拖到“应用”图标上。5、用USB电缆把你的安卓设备连接到Mac。6、点击安卓设备屏幕上的通过USB给这台设备充电7、在“使用USB进行”下选择文件传输8、在Android File Transfer窗口中浏览你的文件。9、完成后断开安卓设备的连接。方法3:使用USB电缆连接Chromebook1、用USB电缆把你的安卓设备连接到Chromebook。2、点击安卓设备屏幕上的通过USB给这台设备充电3、在“使用USB进行”下选择文件传输4、在“文件”应用程序中浏览文件。5、完成后,从Chromebook上断开安卓设备。方法4:通过AirDroid进行无线连接(所有电脑)1、在安卓设备上安装AirDroid应用程序。2、创建一个AirDroid帐户。3、为电脑下载AirDroid应用程序。4、运行AirDroid安装程序。5、在电脑上(或网络浏览器中)打开AirDroid并登录。6、从电脑把文件发送到安卓设备。7、把文件从安装设备发送到电脑。这篇文章教你如何把安卓设备连接到PC、Mac或Chromebook。只要有USB电缆,你就能把手机或平板电脑轻松连接到电脑并互传文件。如果想通过无线方式来连接,那么只要使用AirDroid就能摆脱线缆的束缚,轻松分享文件。
方法1:使用USB电缆连接Windows电脑
1、用USB电缆把安卓设备连接到电脑。你可以使用给安卓设备充电的同一条线。
2、点击安卓屏幕上的通过USB给这台设备充电。在把手机或平板电脑连接到电脑后,很快就会弹出这个通知选项。如果安卓设备的屏幕已被锁定,可能要解锁后才会看到这个通知。
如果还是没看到,那就从主屏幕顶部向下滑动,你会在通知栏中看到它。
3、在“使用USB进行”下选择文件传输。这个选项能让电脑把安卓设备识别为一个硬盘驱动器。这个选项在某些安卓设备上也叫做MTP。
4、等待电脑安装驱动程序。Windows会自动安装任何所需的驱动程序,从而让安卓设备与电脑进行通信。如果驱动程序安装失败或者Windows找不到正确的驱动程序,那你就得安装手机制造商提供的驱动程序了。你可以在网络上搜索设备型号和“Windows驱动”,然后点击设备制造商的链接。不要从未知来源下载驱动程序。
5、打开Windows文件资源管理器。如果没有自动出现显示有你的安卓设备内容的窗口,你也可以按Windows键+E或者点击任务栏中的文件资源管理器图标,随后就会打开文件资源管理器。
6、在文件资源管理器窗口中点击此电脑。你会在文件资源管理器的左面板中看到这个选项。点击后就会在右面板中显示所有连接的驱动器,其中也包括你的安卓设备。
7、双击安卓设备。它可能只会带有型号标识。它会在“设备和驱动器”或“有可移动存储的设备”部分中列出。
8、浏览安卓设备中的文件。现在你会在右面板中看到安卓设备的文件和文件夹。如果设备装有SD卡,那么你通常会看到两个主要的文件夹——一个是内部存储(用来直接把文件保存在安卓设备上),而另一个就是你的SD卡。一些常见的子文件夹包括DCIM(用于存储相机的照片和视频)、音乐、铃声以及特定的应用程序文件夹。
要从安卓设备复制文件到电脑,只用把要复制的文件拖到文件资源管理器的另一个文件夹,或者拖到桌面上就可以了。你也可以用同样的方法从电脑上拖动文件到安卓设备。
9、完成后弹出安卓设备。一旦在安卓设备上完成了文件移动和访问,点击屏幕右下角系统托盘中的安全删除硬件按钮(在靠近时钟的位置)。它看起来像是一个带勾号的优盘。然后,点击你的安卓系统名称旁边的弹出。这样,你就能安全地从电脑上拔下安卓设备了。你可能必须展开隐藏的图标,才能找到安全删除硬件按钮。要找到隐藏图标,点击任务栏上时钟附近的向上箭头。
方法2:使用USB电缆连接macOS
1、在网络浏览器中访问 https://www.android.com/filetransfer in a web browser 。这是Android File Transfer的网站,你要用这个应用程序来把安卓设备连接到你的Mac。
2、点击立即下载。这样会把安装程序下载到你的Mac。
3、打开下载的安装程序。这个文件名为AndroidFileTransfer.dmg,你会在默认的“下载”文件夹中找到它。
4、把Android File Transfer图标拖到“应用”图标上。这样,Android File Transfer应用就会安装到你的Mac上。
5、用USB电缆把你的安卓设备连接到Mac。你可以使用给安卓设备充电的同一条线。设备连接后,Android File Transfer就会自动启动。
6、点击安卓设备屏幕上的通过USB给这台设备充电。在把手机或平板电脑连接到Mac之后,通知栏中就会弹出这个选项。如果安卓设备的屏幕已被锁定,可能要解锁后才会看到这个通知。
如果还是没看到,那就从主屏幕顶部向下滑动,你会在通知栏中看到它。
7、在“使用USB进行”下选择文件传输。这个选项能让电脑把安卓设备识别为一个硬盘驱动器。这个选项在某些安卓设备上也叫做MTP。
专家提示
Luigi Oppido
计算机和技术专家Luigi Oppido是美国加州圣克鲁斯县Pleasure Point Computers的所有者和经营者。他拥有超过25年的一般电脑维修、数据恢复、病毒扫除和升级经验。两年来,他还一直是加州中部KSCO电台《Computer Man Show!》的主持人。
Luigi Oppido
计算机和技术专家
我们的专家认为:在尝试通过USB把安卓手机连接到电脑时,最常见的错误是会忘记勾选允许把手机用作USB驱动器的方框。
8、在Android File Transfer窗口中浏览你的文件。Android File Transfer窗口会显示你设备上的文件夹,很像一个访达窗口。如果设备装有SD卡,那么你通常会看到两个主要的文件夹——一个是内部存储(用来直接把文件保存在安卓设备上),而另一个就是你的SD卡。
相机拍摄的照片和视频通常会保存在一个名为DCIM的文件夹中。
你可以在安卓设备上传输文件。你只用把要传输的文件从安卓设备上的文件夹拖到Mac上的文件夹中,反过来也是一样的。
9、完成后断开安卓设备的连接。一旦完成了文件传输和访问,只用拔掉电缆,断开和Mac的连接就行了。确保在拔电缆时没有任何文件正在进行传输。
方法3:使用USB电缆连接Chromebook
1、用USB电缆把你的安卓设备连接到Chromebook。你可以使用给安卓设备充电的同一条线。
2、点击安卓设备屏幕上的通过USB给这台设备充电。在把手机或平板电脑连接到Chromebook之后,通知栏中就会弹出这个选项。如果安卓设备的屏幕已被锁定,可能要解锁后才会看到这个通知。
如果还是没看到,那就从主屏幕顶部向下滑动,你会在通知栏中看到它。
3、在“使用USB进行”下选择文件传输。这个选项能让Chromebook把安卓设备识别为一个硬盘驱动器。这样也会让Chromebook显示“文件”应用程序。这个选项在某些安卓设备上也叫做MTP。
4、在“文件”应用程序中浏览文件。当你通过USB连接安卓设备时,Chromebook上就会弹出这个窗口。如果设备装有SD卡,那么你通常会看到两个主要的文件夹——一个是内部存储(用来直接把文件保存在安卓设备上),而另一个就是你的SD卡。
你可以从安卓设备向Chromebook传输文件(反过来也一样)。要把文件从安卓设备复制到Chromebook,只用把文件从安卓设备拖到Chromebook上想要的位置。同样,你也可以把文件从Chromebook拖到安卓设备上,并且也可以使用“文件”应用程序。
5、完成后,从Chromebook上断开安卓设备。确保在断开安卓设备的连接时没有任何正在传输的文件。
方法4:通过AirDroid进行无线连接(所有电脑)
1、在安卓设备上安装AirDroid应用程序。你可以从Google Play商店免费获取这个应用程序。你可以通过它连接到电脑上的AirDroid,然后以无线方式传输文件。
2、创建一个AirDroid帐户。这样能便于你的安卓设备和电脑进行连接。在首次启动AirDroid时,点击“注册”按钮,然后按照提示创建一个帐户。
3、为电脑下载AirDroid应用程序。你可以从 https://www.airdroid.com 免费获取它。只用点击立即下载按钮,然后在“用于电脑”下选择Windows或Mac OS X即可开始下载。如果你使用的Chromebook,或者不想在PC或Mac上安装软件,那也可以不用下载,而是直接访问 http://web.airdroid.com ,访问AirDroid的Web版本。
4、运行AirDroid安装程序。如果你用的是网络版,那就跳过这一步。下载完成后,双击你从Airdroid下载的文件,然后按照屏幕说明进行安装。如果是在Windows上安装AirDroid,在提示时授予通过Windows防火墙的访问权限。
5、在电脑上(或网络浏览器中)打开AirDroid并登录。你要使用在安卓设备上登录应用程序时创建的同一个Airdroid帐户。然后,你就可以通过电脑上的Airdroid浏览安卓设备上的文件了。
6、从电脑把文件发送到安卓设备。你可以把文件拖放到AirDroid窗口中,从而快速添加文件到安卓设备。点击像纸飞机的“传输文件”图标,然后从列表中选择你的安卓设备。 然后,您可以把文件从计算机拖到聊天窗口,然后点击发送把它们保存到安卓设备上。
7、把文件从安装设备发送到电脑。为此,你要在安卓设备上打开AirDroid应用程序,点击顶部的我的设备,然后从列表中选择电脑(或者选择AirDroid 网络版)。点击底部的回形针图标,选择文件,选择要发送的文件,然后点击发送。
7. PC服务器端和android手机客户端socket通信问题
1. PC服务器启用ServerSocket
两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。
使用ServerSocket对象监听来自客户端的Socket连接。
//创建ServerSocket对象
ServerSocket ss = new ServerSocket(30000);
//监听来自客户端的请求
while(true){
Socket s = ss.accept();
…
}
如果没有连接,则将一直处于等待状态。当接收到连接请求后,获取消息到输入流,并保存到文件。
//接收客户端消息
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str;
BufferedWriter bw = new BufferedWriter(new FileWriter("D:/ApInfo"+ (i++) +".txt"));
while ((str = in.readLine()) != null) {
System.out.println(str);
bw.write(str);
bw.newLine();
}
2. Android终端使用Socket通信
客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。
Socket s = new Socket(“192.168.1.100”, 30000);
这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。
详细步骤:
采用Handler和TimerTask来定时扫描AP信息并发送给服务器端。TimerTask规定了到达指定的时间所要进行的任务。
TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
handler传递message内容:
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
// 执行定时器时间到了之后由handler传递的任务
break;
}
super.handleMessage(msg);
}
}
接下来扫描AP信息并发送给服务器端,然后将结果保存。
WifiManager wifiManager=(WifiManager) getSystemService(WIFI_SERVICE);
wifiManager.startScan();
mWifiList = wifiManager.getScanResults();
由WifiManager说明可知,它可以用于处理已配置的网络,当前连接的网络及AP信息的扫描等情况。
向服务器发送消息:
socket = new Socket("192.168.1.211",30000);
//向服务器端发送消息
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
其中message为获取的AP信息,测试收到的信息格式为:
SSID: ICIS_LAB, BSSID: 1c:af:f7:9a:65:e4, capabilities: [WPA-PSK-TKIP+CCMP], level: -80,frequency: 2437
8. 怎么把pc端的软件作为服务器与android客户端通信
Android使用的仅仅使用了PC 里边的一个端口 IP自然就是127.0.0.1了,或者是localhost吧 关于5037口和5555口,找到了一个看起来合理的解释: adb(Android Debug Bridge)包括三个部分: 1)adb client, 运行在PC上(为DDMS,即IDE工作) 2)adb daemon(守护进程), 运行于Emulator(为与Emulator中的VM交互工作); 3)adb server(服务进程), 运行在PC(任务管理器上有),管理着adb client和adb daemon的通信.server与client通信的端口是是5037, adb server会与emulator交互的,使用的端口有两个,一个是5554专门用于与Emulator实例的连接,那么数据可以从Emulator转发给IDE控制台了,另一个则是5555,专门与adb daemon连接为后面调试使用。