需求:
1.一个android端的service后台运行的程序,作为socket的服务器端;用于接收Pc client端发来的命令,来处理数据后,把结果发给PC client
2.PC端程序,作为socket的客户端,用于给android手机端发操作命令
难点分析:
1.手机一定要有adb模式,即插上USB线时马上提示的对话框选adb。好多对手机的操作都可以用adb直接作。
不过,我发现LG GW880就没有,要去下载个
2.android默认手机端的IP为“127.0.0.1”
3.要想联通PC与android手机的sokcet,一定要用adb forward 来作下端口转发才能连上socket.
4.android端的service程序Install到手机上容易,但是还要有方法来从PC的client端来启动手机上的service ,这个办法可以通过PC端adb命令来发一个Broastcast,手机端再写个接收BroastcastReceive来接收这个Broastcast,在这个BroastcastReceive来启动service
pc端命令:
android端的代码:ServiceBroadcastReceiver.java
5.由于是USB连接,所以socket就可以设计为一但连接就一直联通,即在new socket和开完out,in流后,就用个while(true){}来循环PC端和android端的读和写
android的代码:
6.如果是在PC端和android端的读写操作来while(true){}循环,这样socket流的结尾不好判断,不能用“-1”来判断,因为“-1”是只有在socket关闭时才作为判断结尾。
7.socket在out.write(bytes);时,要是数据太大时,超过socket的缓存,socket自动分包发送,所以对方就一定要用循环来多次读。最好的办法就是服务器和客户端协议好,比如发文件时,先写过来一个要发送的文件的大小,然后再发送文件;对方用这个大小,来循环读取数据。
android端接收数据的代码:
8.socket的最重要的机制就是读写采用的是阻塞的方式,如果客户端作为命令发起者,服务器端作为接收者的话,只有当客户端client用out.writer()写到输出流里后,即流中有数据service的read才会执行,不然就会一直停在read()那里等数据。
9.还要让服务器端可以同时连接多个client,即服务器端用new thread()来作数据读取操作。
源码:
客户端(pc端):
testPcClient.java
android服务器端:
主类androidService.java
用于接收PC发来的Broastcast并启动主类service的ServiceBroadcastReceiver.java
用于新socket连接的读写线程类ThreadReadWriterIOSocket.java
后面是两个辅助类:
分享到:
相关推荐
### PC客户端与Android服务端的Socket同步通信 #### 需求分析 在现代移动设备与个人电脑(PC)之间的通信中,实现稳定的双向数据传输变得越来越重要。本篇将详细介绍如何构建一个基于Socket的同步通信系统,其中...
### PC客户端与Android服务端的Socket同步通信 #### 概述 在现代移动应用开发中,经常需要实现PC客户端与Android设备之间的数据交互。本文档将详细介绍如何通过Socket同步通信技术,实现PC客户端与Android服务端的...
在IT领域,尤其是在移动设备和桌面系统的交互中,"PC客户端与Android服务端的Socket同步通信(USB)"是一个重要的技术主题。这个话题涉及到多个关键知识点,包括Android的USB通信、Socket编程以及客户端-服务器架构...
标题中的“PC客户端与Android服务端的Socket同步通信(USB)demo”指的是一个示例项目,它演示了如何使用Socket编程实现PC(个人计算机)与Android设备通过USB接口进行双向通信。这种通信方式通常用于开发者调试、...
PC客户端与Android服务端的Socket同步通信,虽然不到20页的实例讲解,但是非常的经典,不要多分,仅仅1分
"Android 客户端与 PC 服务器实现 Socket 通信" Android 客户端与 PC 服务器实现 Socket 通信是基于 TCP 协议的网络虚拟链路的建立和维护。该实现过程分为两部分:PC 服务器端和 Android 客户端。 PC 服务器端使用...
在本场景中,我们关注的是C#作为服务器端,Android作为客户端的Socket通信实现。这种通信方式常用于移动应用与后台服务之间的实时数据交互,如即时消息、位置更新、文件传输等。 一、C# Socket服务器端实现 1. 引用...
一旦有客户端连接,`accept()`方法会返回一个新的Socket对象,用于与该客户端通信。服务端代码可能如下所示: ```java ServerSocket serverSocket = new ServerSocket(服务端口); Socket clientSocket = ...
a.PC客户端与Android服务端的Socket同步通信(USB) b.操作步骤如下: ----------------------------------------------------------- 1.请将测试数据文件夹中的ucliulanqi.apk copy到c:\下进行测试 2. 将android...
压缩包中二个项目文件夹 1.MySocketServer(C#服务端及客户端) 2.MyTestsocket(android客户端) socket通信demo并未实现过多功能,主要演示通信,更多功能自己开发,哈哈!
这将返回一个新的Socket对象,用于与客户端通信。 3. **数据接收**:与客户端类似,通过新Socket的`InputStream`接收客户端发送的数据。 4. **数据响应**:同样通过新Socket的`OutputStream`向客户端发送数据。 5...
本教程将深入探讨如何使用C#编程语言以及SuperSocket库来构建一个高效、稳定的服务器端和客户端通信模型。SuperSocket是一个轻量级且易于使用的.NET Socket服务端开发框架,它为开发者提供了构建自定义网络应用的...
在Android应用开发中,通信是不可或缺的一部分,尤其是在客户端与服务端之间进行实时数据交互时。本文将深入探讨如何使用Socket实现Android客户端与服务端之间的文字和图片收发功能。 首先,我们来理解Socket的基本...
在这个项目中,"基于Android的简单Socket服务端与客户端"实现了两个Android应用程序:一个作为服务端,另一个作为客户端,它们通过Socket进行数据交换。 首先,我们要理解Socket的工作原理。Socket是网络编程的基本...
在Android应用开发中,实现客户端与服务端的长连接通信,常常会用到Socket编程。Socket,也称为“套接字”,是网络通信的一种基础工具,它提供了进程间或者网络间进程的通信机制。本篇将详细介绍如何在Android客户端...
在IT领域,构建Android客户端与PC服务端程序的交互是常见的任务,这涉及到移动设备与桌面系统的通信,以便实现数据的共享和交换。本项目主要关注Android应用如何连接到PC上的服务端,通过访问数据库(如MySQL和...
Socket Android手机客户端与PC服务端局域网内联测试,仅供学习使用,更多关于微信开发和Android开,请到:http://blog.csdn.net/jspping?viewmode=list
本项目提供的"Android客户端与pc服务端程序demo"是一个很好的学习资源,旨在帮助开发者理解如何实现这两者之间的通信。下面将详细介绍这个demo涉及的关键知识点。 1. **Android客户端**: - **HTTP通信**:在这个...
本实验的目标是开发一个基于Socket的客户端与服务端应用程序,能够实现在客户端与服务端之间的通信功能。本实验使用C语言编写服务端程序,并使用Android平台开发客户端程序。实验的具体要求如下: - **编写客户端和...
C++编写的服务器端跟android上编写的手机客户端进行socket通信,传动多种数据。用VC6.0直接打开C++ Server,用eclipse直接打开android socketTest。注意修改一下安卓代码中的IP地址。程序中java和C++的通信的内容...