1.首先建立wifi热点服务器  wifi客户端连接

2.开启一个子线程循环监听某个端口,进行数据流输入输出

/* 服务器 接收数据 */
class Receiver extends Thread {
public String receiverContent;
public boolean flag = true;
public ServerSocket serverSocket = null;

public void run() {
try {
// 创建ServerSocket
serverSocket = new ServerSocket(3358);
while (flag) {
// 接受客户端请求
Socket client = serverSocket.accept();
System.out.println("accept");
try {
// 接收客户端消息
BufferedReader in = new BufferedReader(
new InputStreamReader(client.getInputStream()));
receiverContent = in.readLine();
System.out.println("read:" + receiverContent);
handler.sendEmptyMessage(0);
// 向客戶端发送消息
PrintWriter out = new PrintWriter(
new BufferedWriter(new OutputStreamWriter(
client.getOutputStream())), true);
out.println("server message");
// 关闭流
out.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 关闭
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

public void close() {
flag = false;
if (serverSocket != null) {
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

/* 客户端发送数据 */
class Sender extends Thread {
String serverIp;
String message;

Sender(String serverAddress, String message) {
super();
serverIp = serverAddress;
this.message = message;
}

public void run() {
Socket sock = null;
PrintWriter out;
try {
// 声明sock,其中参数为服务端的IP地址与自定义端口
sock = new Socket(serverIp, 3358);
Log.w("WifiConnection", "I am try to writer" + sock);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
// 向服务器端发送消息
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(sock.getOutputStream())), true);
out.println(message);

// 接收来自服务器端的消息
BufferedReader br = new BufferedReader(new InputStreamReader(
sock.getInputStream()));
String msg = br.readLine();
Message m = handler.obtainMessage();
m.what = 1;
m.obj = msg;
handler.sendMessage(m);
// 关闭流
out.close();
out.flush();
br.close();
// 关闭Socket
sock.close();
} catch (Exception e) {
LogUtil.e("发送错误:[Sender]run()" + e.getMessage());
}

}
}

android wifi热点 socket通信的更多相关文章

  1. Android WiFi热点7.1以上版本适配

    代码地址如下:http://www.demodashi.com/demo/13907.html 一.准备工作 开发环境:  jdk1.8  AS(3.0.1) 运行环境:  华为V10(Android ...

  2. Android WiFi热点完全研究(自定义创建、跳转系统界面设置、读取配置、切换,Android6.0适配)

    前言: WiFi热点设置页面的安全性选项在Android 4.x上有“无”.“WPA PSK”.“WPA2 PSK”三个选项,在Android 5.0(含)之后去掉了WPA PSK选项(部分手机厂家会 ...

  3. Android简单实现Socket通信,client连接server后,server向client发送文字数据

    案例实现的是简单的Socket通信,当client(Androidclient)连接到指定server以后,server向client发送一句话文字信息(你能够拓展其他的了) 先看一下服务端程序的实现 ...

  4. android wifi 热点、socket通讯

    WiFi管理工具类 package com.wyf.app.common; import java.lang.reflect.InvocationTargetException; import jav ...

  5. Android进程间通信之socket通信

    用Java中的socket编程. 通过socket实现两个应用之间的通信,可以接收和发送数据,同时将接收到的数据显示在activity界面上. Server端: ServerLastly.java p ...

  6. 从零开始学android -- 简易的socket通信

    先来介绍下socket,网上摘抄点资料,免得自己打字了 网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 1.消息传递(管道.FIFO.消息队列) 2.同步(互 ...

  7. android中非堵塞socket通信

    1.什么是同步与异步,堵塞与非堵塞 首先我们要明确搞明确:同步就等于堵塞?异步就等于非堵塞?这是不正确的,同步不等于阻 塞.而异步也不等于非堵塞. 1)那什么是同步编程? 什么是同步,就是在发出一个功 ...

  8. Android 网络编程 Socket

    1.服务端开发 创建一个Java程序 public class MyServer { // 定义保存所有的Socket,与客户端建立连接得到一个Socket public static List< ...

  9. 【移动开发】WIFI热点通信(二)

    相信大家在上一篇中已经了解了Android中WIFI热点通信的相关操作知识(http://smallwoniu.blog.51cto.com/3911954/1536126),今天我们将在上一篇代码基 ...

随机推荐

  1. Uploadify v3.2.1 参数说明

    一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass ” 按钮样式 buttonCursor ‘ ...

  2. nodejs模块——http模块

    http模块主要用于创建http server服务. 本文还用到url模块和path模块,还有fs模块.url模块用于解析url,path模块用于处理和转换文件路径. 一.简单应用 代码如下: // ...

  3. RCC BUCK-BOOST变压器设计

    电路处于Buck-Boost DCM模式,最恶劣情况为输入电压最低时.取频率为f 以下图为例: 1.MOS耐压选择: Vmos≥Vinmax+Vout+80 2.保证磁芯不饱和且始终工作在DCM模式 ...

  4. LinuxAsm#Chapter10

    Dividing and Conquering Book: Assembly Language step by step Complexity kills programs. Remember to ...

  5. 《Invert》开发日志03:一些想法

    本来标题想写“详细设计”,但是由于独立游戏开发有很强的探索性,最终项目一定是经过原型调整迭代而来的,所以在实际效果出来之前把设计做得太细并没有太大意义,现在只能先陈列目前的一些想法,不能定义“它是什么 ...

  6. python中if __name__ == "__main__":用法解析

    __name__: __name__作为模块的内置属性,简单点说呢,就是.py文件的调用方式. __main__: 如果__name__等于"__main__"就表示是直接执行. ...

  7. Markdown(MD)写作

    简洁的写作 目前正逐步使用Makedown来写博客或其它的文档,本文记录一下Markdown的相关知识 Markdown语法 标题 # 内容 (一级标题) ## 内容 (二级标题) ### 内容 (三 ...

  8. java中使用二重循环打印图形

    如图所示:打印沙漏图形 1:因为外层循环控制图形行数,所以首先判断这四个选项能否循环五次 2:以上四个循环的表达式都能循环五次,我们从内层循环入手. A:int i=0;i<5;i++ 当i=1 ...

  9. java 27 - 1 反射之 类的加载器

    说到反射,首先说类的加载器. 类的加载: 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载: 就是指将class文件读入内存,并为之 ...

  10. 后缀自动机&序列自动机综合

    好像序列自动机还没有写过- 串长为n的串共有n+1个节点,除了串中的n个节点,还有一个空的根节点放在串首.每个节点至多有26条出边,每条边连向它之后的第一个字符. 串中的任意一个子序列对应了一条根到某 ...