- 浏览: 278595 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
flyingsnowff:
支付宝官方在线文档中心:https://doc.open.al ...
如何集成支付宝官方文档 -
timer_yin:
果然是这样
[转帖] 安装Eclipse插件长时间卡在 calculating requirements and dependencies -
dai_lm:
lyx0224 写道强~~~~~过奖,只是总结了前人的智慧,拼 ...
通过Wifi实现设备间的通信 -
lyx0224:
强~~~~~
通过Wifi实现设备间的通信 -
Goro:
帅!
自己封装的支持自动对焦的CameraView
服务器端,建立监听(方法更新,可以同时连接多个Client)
客户端,发送消息
public class Server extends ServerSocket { private static ArrayList<String> mUserList = new ArrayList<String>(); private static ArrayList<Thread> mThreader = new ArrayList<Thread>(); private static LinkedList<String> mMessageArray = new LinkedList<String>(); private static int mThreadCounter = 0; private static boolean isClear = true; public Server(int port) throws IOException { super(port); new Broadcast(); try { while (true) { Socket socket = accept(); new CreateServerThread(socket); } } catch (IOException e) { } finally { close(); } } // --- CreateServerThread class CreateServerThread extends Thread { private Socket client; private BufferedReader in; private PrintWriter out; private String username; public CreateServerThread(Socket s) throws IOException { client = s; in = new BufferedReader(new InputStreamReader( client.getInputStream(), "UTF8")); out = new PrintWriter(client.getOutputStream(), true); sendMessage("--- Welcome ---"); sendMessage("Input your nickname:"); start(); } public void sendMessage(String msg) { out.println(msg); System.out.println(msg); } public void run() { try { int flag = 0; mThreadCounter++; String line = in.readLine(); while (line == null || !line.equals("bye")) { if (line == null) { // sendMessage("null"); line = in.readLine(); continue; } if (line.equals("l")) { sendMessage(listOnlineUsers()); line = in.readLine(); continue; } if (flag++ == 0) { username = line; mUserList.add(username); sendMessage(listOnlineUsers()); mThreader.add(this); pushMessage("[< " + username + " come on in >]"); } else { pushMessage("<" + username + ">" + line); } line = in.readLine(); } sendMessage("--- See you, bye! ---"); client.close(); } catch (IOException e) { } finally { try { client.close(); } catch (IOException e) { } mThreadCounter--; mThreader.remove(this); mUserList.remove(username); pushMessage("[< " + username + " left>]"); } } private String listOnlineUsers() { String s = "-+- Online list -+-1512"; for (int i = 0; i < mUserList.size(); i++) { s += "[" + mUserList.get(i) + "]1512"; } s += "-+---------------------+-"; return s; } private void pushMessage(String msg) { mMessageArray.addLast(msg); isClear = false; } } // --- Broadcast class Broadcast extends Thread { public Broadcast() { start(); } public void run() { while (true) { if (!isClear) { String tmp = mMessageArray.getFirst(); for (int i = 0; i < mThreader.size(); i++) { CreateServerThread client = (CreateServerThread) mThreader .get(i); client.sendMessage(tmp); } mMessageArray.removeFirst(); isClear = mMessageArray.size() > 0 ? false : true; } } } } }
客户端,发送消息
public class Client { private Socket socket; private BufferedReader in; private PrintWriter out; public Client(String domain, int port) { connect(domain, port); get(in); } private void connect(String domain, int port) { try { socket = new Socket(domain, port); in = new BufferedReader(new InputStreamReader( socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void get(final BufferedReader in) { new Thread(new Runnable() { public void run() { try { String line = in.readLine(); while (true) { line = in.readLine(); } } catch (IOException e) { e.printStackTrace(); } } }).start(); } public void send(String msg) { out.println(msg); } public void disconnect() { try { out.close(); in.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
发表评论
-
获取Android Device的信息
2013-12-26 15:47 1504String phoneInfo = "PROD ... -
看雪学院-Android安全
2013-11-25 09:40 999http://bbs.pediy.com/forumdispl ... -
Toast原来也可以多样化
2013-09-18 13:48 1224Style 1: 默认 Toast def = Toast ... -
Google Map API V2
2013-05-13 13:37 2254以后如果要开发包含google map的程序就更麻烦咯 htt ... -
用OpenGL实现无限循环的coverflow
2013-04-26 14:16 4905网上找了很久,都是用Gallery实现的,效果不是很满意,结果 ... -
如何集成支付宝官方文档
2013-02-08 11:24 4556官方文档下载地址 https://b.alipay.com/o ... -
[转帖]裁剪图片
2013-01-30 17:22 991原帖:http://www.linuxidc.com/Linu ... -
MonkeyRunner的使用
2013-01-29 13:06 9748要使用MonkeyRunner,就要 ... -
重复执行某段代码
2012-12-29 14:36 1632用handler就可以了 private Handler ... -
选择音频的输出方式
2012-12-12 15:00 2003可以选择用耳机还是扬声器播放(蓝牙的就留到下次吧),要求SDK ... -
使FrameLayout的Gravity等于Center
2012-12-06 16:42 1784由于无法设置FrameLayout的Gravity,所以只能通 ... -
在Android上模拟MetroUI
2012-10-31 15:49 2681在Android上模拟WP7的MetroUI MetroIt ... -
Uri.Builder与String互转
2012-08-14 15:56 2385Uri.Builder -> String Uri. ... -
判断屏幕尺寸
2012-07-17 10:21 1912// support from API 4 final ... -
自己封装的支持自动对焦的CameraView
2012-07-12 13:52 3718import java.io.BufferedOutp ... -
ADT 离线包下载地址
2012-07-06 14:32 2108更新ADT真是件苦恼的事啊 20.0.0的下载地址 http ... -
IP地址的获取及解析
2012-06-05 13:31 1290获取IP地址 WifiManager wifiManage ... -
判断网络是否有效
2012-05-28 17:32 999protected boolean isInternetA ... -
悬浮窗
2012-05-28 17:21 3143类似于360监视网络速度的那个悬浮窗 public cl ... -
自定义全屏Dialog
2012-04-20 13:16 4109关键在于设置Style <style nam ...
相关推荐
Android 设备之间通过 Wifi 通信的示例代码主要介绍了 Android 设备之间如何通过 Wifi 进行通信的示例代码,实现 Android 设备之间的互联互通。 在 Android 设备之间进行 Wifi 通信时,需要实现的目标是让 Android ...
利用WiFi进行设备间的通信不仅可以实现数据的快速传输,还可以构建出多种多样的应用场景,如远程控制、即时消息等。本文将详细介绍一个基于Android平台的WiFi通信代码案例,帮助读者理解和掌握如何在Android应用中...
在Android平台上,实现设备间通过Wi-Fi进行文件传输是一项实用且常见的功能,尤其在没有数据线或者蓝牙的情况下。本文将详细解析如何利用Android的网络编程技术来构建这样的应用。 首先,我们要理解Android的网络...
在Android应用开发中,将设备与51单片机通过WiFi进行串行通信是一项常见的物联网(IoT)技术。此项目涉及多个关键技术点,包括Android Studio的使用、89C51单片机编程、ESP8266 WiFi模块以及串行通信协议。下面将详细...
接着,要实现设备间的通信,通常需要使用TCP/IP或UDP协议。在Android中,我们可以使用`Socket`或`DatagramSocket`类进行网络编程。源码中可能会包含创建服务器端(Server)和客户端(Client)的逻辑,以及它们之间的...
这种特性使得IPHONE能够直接通过WIFI连接至设备,实现远程控制。 #### 二、AD-HOC模式下的网络构建 HLK-WIFI-M03模块启动后,可以自动创建一个AD-HOC网络,IPHONE只需加入该网络,即可实现数据的透明传输。这意味...
E4A支持多种Android API,包括网络通信API,这使得它能与各种硬件设备进行数据交换,例如通过WiFi连接的单片机。 单片机,也称为微控制器,是一种集成化的微型计算机,主要用于控制电子设备。在本案例中,单片机...
**实现通信**\n 要实现uni-app与Android原生间的通信,首先需要在Android端创建一个BroadcastReceiver监听特定的广播事件,然后在uni-app端发送对应的广播。例如,uni-app可以通过`uni.sendBroadcast`方法发送一个...
WiFi热点通信是一种无线网络通信技术,它允许设备通过创建一个WiFi热点来共享互联网连接或进行设备间的通信。在本文中,我们将深入探讨WiFi热点通信的工作原理、应用以及相关的编程技术。 首先,我们要理解WiFi热点...
在C#中实现WiFi通信,开发者需要掌握以下关键技术: - **SSID探测**:通过NetworkInformation类的Ping方法可以探测周围可用的WiFi网络,获取SSID(服务集标识符)信息。 - **连接到网络**:使用Wlan类(可能需要...
首先,标题和描述提到的“wifi模块-uart通信”指向了将传统的串行通信设备通过WiFi模块接入无线网络的技术,以及通过串口实现与WiFi模块之间的数据交互。 从文件提供的内容来看,我们可以梳理出以下知识点: ### 1...
2. WiFi 通信技术:WiFi(Wireless Fidelity)是一种无线网络技术,能够实现设备之间的无线通信。WiFi 通信技术广泛应用于智能家居、工业自动化、物联网等领域。 3. 火焰传感器:火焰传感器是一种用于检测火焰的...
这个程序设计允许Android设备作为客户端,通过WiFi或蓝牙与服务器端模块进行数据交互。下面将详细介绍相关的知识点。 首先,我们要了解**Android串口通信**。在Android系统中,由于安全限制,直接访问硬件串口是不...
通过Wi-Fi通信,我们可以让设备间共享数据,实现对等网络服务,如文件传输、游戏交互或者智能家居控制。以下是一些关于Android手机之间Wi-Fi通信的核心知识点: 1. **Wi-Fi Direct**:Wi-Fi Direct是一种点对点连接...
总之,“两个WIFI通信”的项目展示了如何利用STM32控制器和多串口通信技术实现两个Wi-Fi模块间的双向AT指令交互,这对于物联网设备、智能家居以及工业自动化等领域的应用具有重要意义。通过深入理解和实践此类技术,...
Wi-Fi技术不仅用于网络连接,还可以实现设备间的短距离数据共享。本文将深入探讨如何利用Android系统的架构来实现这一功能。 一、Android系统与Wi-Fi架构 Android系统基于Linux内核,提供了一个强大的网络框架,...
1. **WiFi Direct**:在Android中,实现设备间直接通信通常采用WiFi Direct技术。它允许设备建立点对点的无线连接,无需接入点。WiFi Direct提供了高速、低延迟的数据传输能力,非常适合设备间的直接通信。 2. **...
"app inventor自定义的wifi通信app" 这个标题表明我们讨论的是一个使用App Inventor开发的应用程序,它的核心功能是通过Wi-Fi进行通信。App Inventor是Google开发的一款图形化编程工具,特别适合初学者用于创建手机...