Android使用LocalSocket抓取数据
来源:互联网 发布:js onload ready 编辑:程序博客网 时间:2024/05/19 08:04
LocalSocket类描述:在Unix域名下创建一个(非服务器)Socket,这种Socket和java.net.Socket不同
贴上一个LocalSocket简单应用
package com.snowice.local;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import android.app.Activity;import android.net.LocalServerSocket;import android.net.LocalSocket;import android.net.LocalSocketAddress;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;public class AndroidLocalSocketActivity extends Activity {private static final String TAG = "MY_LOCAL_SOCKET";/** 开始演示按钮 */private Button button_start;/** 结束演示按钮 */private Button button_end; private LocalSocket receiver; private LocalSocket sender;private LocalServerSocket lss;/** 数据缓冲大小 */private static final int BUFFER_SIZE = 500000;/** 判断是否正在运行 */private boolean running;/** 用于计数 */private int i = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button_start = (Button) findViewById(R.id.button_start); button_end = (Button) findViewById(R.id.button_end); // 设置监听事件 button_start.setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v) { receiver = new LocalSocket(); try {lss = new LocalServerSocket("Local_Socket");receiver.connect(new LocalSocketAddress("Local_Socket"));receiver.setReceiveBufferSize(BUFFER_SIZE);receiver.setSendBufferSize(BUFFER_SIZE);sender = lss.accept();sender.setReceiveBufferSize(BUFFER_SIZE);sender.setSendBufferSize(BUFFER_SIZE);// 将控制器running设置为truerunning = true;// 启动发送接受线程new Thread (local_send).start();new Thread (local_receive).start();} catch (IOException e) {e.printStackTrace();}}}); // 取消数据发送 button_end.setOnClickListener(new Button.OnClickListener(){ @Overridepublic void onClick(View v) { running = false; } }); } // 发送线程 Thread local_send = new Thread (){ // 线程运行函数 public void run() { OutputStream m_Send = null; try {m_Send = sender.getOutputStream();while(running) {byte[] data = ("LOCAL-SOCKET" + i).getBytes();sender.setSendBufferSize(data.length);sender.setReceiveBufferSize(data.length);m_Send.write(data);m_Send.flush();Thread.sleep(100);i ++;}m_Send.close();sender.close();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} } }; // 接收线程 Thread local_receive = new Thread(){ public void run(){ InputStream m_Rece = null; try {m_Rece = receiver.getInputStream();byte[] data;int receiveLen = 0;while(running) {receiveLen = receiver.getReceiveBufferSize();data = new byte[receiveLen];m_Rece.read(data);Log.i(TAG, "receiver.getReceiveBufferSize()" + receiveLen + " --- "+new String(data) + " ---");Thread.sleep(1000);// 将i设为0i = 0;}m_Rece.close();receiver.close();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} } };}
- Android使用LocalSocket抓取数据
- Android使用LocalSocket抓取数据
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android Localsocket的使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Android中LocalSocket使用
- Fiddler Can Make Debugging Easy
- android 仿iphone tab实现
- Android入门第十五篇之ActivityGroup + GridView 实现Tab分页标签
- application/x-www-form-urlencoded 字符编码
- C++
- Android使用LocalSocket抓取数据
- 循环缓冲区(参考linux内核Kfifo)
- Android入门第十六篇之Style与Theme
- 关于winapi和CALLBACK,_stdcall _cdecl _pascal等的分析与归纳理解
- 人与人之间的差距,从大学拉大。(30条建议)
- NYOJ--第27题 水池数目
- 使用navigator.geolocation来获取用户的地理位置信息
- 测试总结
- Android PackageManagerService详细分析