android通过手机热点通信
前几章中讲到了使用手机的热点建立局域网,下面就简单讲下如何通过手机热点建立的局域网与连接到此热点的其它设备(手机或者电脑)通信,在不需要访问外网的情况下,只要连接到手机热点的所有设备间都可以通信,就看程序支持不支持了.
第一步:创建一个热点,利用前几章博客的WifiAdmin的startAp();传入SSID,密码即可创建一个热点.
第二步:创建热点成功后,将要通信的设备连接到此热点上.
第三步:开始编写Socket通信程序,与普通的Socket的用法是完全一样的,
以下是我的测试机小米手机建立热点,我的笔记本电脑连接到手机热点的通信程序,其中还是让计算机做为ServerSocket端,手机做为Socket端,不喜欢叫服务端和客户端,因为从理论上来讲,只是某一端作为主动连接,一端做为被动接收,当连接建立后所有可通信设备间都可平等的.
手机Socket程序:
public class MyClient extends Activity {// ��������ϵ������ı���EditText input, show;// ��������ϵ�һ����ťButton send;OutputStream os;Handler handler;Socket s;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);input = (EditText) findViewById(R.id.input);send = (Button) findViewById(R.id.send);show = (EditText) findViewById(R.id.show);handler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 0x123) {show.append("\n" + msg.obj.toString());}}};try {/*** 建立连接,只要通信双方在一个局域网中即可,无所谓谁是服务器谁是客户端,连接成功后地位都一样了就* 现在这个IP是电脑的IP,热点是手机开放的,可以说明谁连谁是无所谓的,只要连上即可*/s = new Socket("192.168.43.35", 30000);// 接收数据则要放在一个线程里去不停的接收,将一些必要的参数传过去new Thread(new ClientThread(s, handler)).start(); // ��/*** 得到网络输出流*/os = s.getOutputStream();} catch (Exception e) {e.printStackTrace();}send.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {try {// 直接发送出去os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));// ���input�ı���input.setText("");} catch (Exception e) {e.printStackTrace();}}});}
}
ServerSocket端程序:
public class MyServer {// 定义保存所有Socket的ArrayListpublic static ArrayList<Socket> socketList = new ArrayList<Socket>();public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(30000);while (true) {// 此行代码会阻塞,将一直等待别人的连接Socket s = ss.accept();socketList.add(s);// 每当客户端连接后启动一条ServerThread线程为该客户端服务new Thread(new ServerThread(s)).start();}}
}
以上代码没有将处理通信的Thread代码贴出来,因为很简单,只是启动一个线程去根据拿到Socket得到对应的输入输出流去读写内容,没有什么特殊的地方就不再贴出,参考了李刚<疯狂讲义>中的Socket通信demo.
android通过手机热点通信相关推荐
- Qt for Android获取手机热点开关状态
Qt开发android应用,从Qt端调用android原生接口获取手机热点开关状态,首先来看一下封装好的android接口类wifiHostBiz.java (以下代码来自网络) package co ...
- 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
一文读懂Android/iOS手机如何通过音频接口与外设通信 更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一文读懂 ...
- 小米手机 安装AndroidAuto后连接车机,提示android auto出现错误 通信错误16
现象 小米手机 安装AndroidAuto后连接车机,提示android auto出现错误 通信错误16 解决 可能因为双开应用不兼容导致的,需要在手机端关闭应用双开. 不同手机位置不一定一样, 举例 ...
- oppo手机热点Android,手机热点怎么改名字(图文)
[导读]手机热点怎么改名字,下面就是191路由网整理的网络知识百科,来看看吧! 大家好,我是191路由器网小编,上述问题将由我为大家讲解. 以OPPO手机为例,手机热点改名字的方法如下: 1.在手机设 ...
- Android手机热点连接信息查看
在测试一个APP时,需要手机作为热点等待设备连接,待设备连接后用APP进行操作. 为了获取手机热点WIFI连接情况,查阅了网上资料找到了下列命令用于手机WIFI状态查看. 1.手机是热点还是WIFI ...
- windows远程android传输文件,电脑(Linux/Windows)使用SSH远程登录安卓(Android)手机实现无线传输和管理文件(图文详解)-Go语言中文社区...
电脑(Linux/Windows系统)使用SSH远程登录安卓(Android)手机实现无线传输和管理文件(图文详解) 温馨提示 本文只针对安卓(Android)手机!iPhone或者WP的手机用户,请 ...
- 怎么关闭手机热点通知显示_关闭智能手机通知的重要性
怎么关闭手机热点通知显示 I want you to stop and close your eyes for a minute and picture a bratty, snotty little ...
- 电脑端的tomcat和安卓手机的通信
手机端连接上电脑端tomcat的服务器的讲解 大致分为下面几类 1. 手机连接上笔记本电脑的热点,访问电脑上的tomca服务器 2.使用一个wifi模块, 手机连接和笔记本电脑连接上同一个wifi模块 ...
- Android与物联网设备通信-自定义报文与字节序
前几节我们把网络通信中的基础都过了一遍,今天真正开始秀操作了.本节主要讲解如何在应用层上去定义报文的结构体.良好的报文设计会让今后的业务扩展变得轻松.顺带会讲解一下字节序. 可以发现最近的章节都把两个 ...
- android之手机截屏小程序
Android 手机截屏程序 一:程序运行的大致思路 1.运行程序,显示一个Activity界面,点击按钮,显示一个浮窗.这里用到一个显示浮窗的小技术. 2.在显示浮窗的同时,会启动一个server服 ...
最新文章
- C++类构造函数中的成员初始化
- scala一些奇怪的操作符的效果(持续更新中)
- mysql做主从复制配置案例
- 混合字符串字符数统计
- dos如何修改远程服务器的密码,dos命令登入远程服务器
- IPsec 在企业网中的应用
- jstack命令报错
- python进行数据抽取_python中的数据抽取
- VS2013官方下载地址
- 鸡小德手机小常识 如何鉴定手机是否为行货
- Linux 查看本地ip
- 直流电源输入防反接保护电路总结
- 身为程序员就算月薪再高,想找女朋友的话这些你千万别做!
- 微信小程序生命周期和路由传参详解
- 手机应用软件卸载【adb】
- 【ORACLE】从安装ORACLE LINUX 8开始构建一个ORACLE21C的docker镜像
- WaitGroup is reused before previous Wait has returned
- 基本数据结构--字典和常用内置序列函数
- (二)u-boot2013.01.01 for TQ210:《Makefile分析》
- Linux下的启动oracle服务 启动监听 开放端口操作