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();}    }    };}



更多相关文章

  1. Android(安卓)EditText 自定义带删除按钮
  2. Android系列之Message机制的灵活应用
  3. android 学习笔记2——实现基本功能
  4. Android(安卓)重写返回键
  5. Android自动化工具Monkeyrunner使用(五)
  6. 如何分析解决Android(安卓)ANR
  7. 第20章、OnCheckedChangeListener事件(从零开始学Android)
  8. android中使用线程(比如修改textview的text)
  9. android 自定义按钮样式

随机推荐

  1. Android中使用webservice验证用户登录的
  2. android用okhttp搭建网络通讯(附服务器端
  3. Android(安卓)应用程序基础(对大家有个概
  4. Android(安卓)AR ---HelloAR(用的EasyAR
  5. Android(安卓)开发进阶指南
  6. 理解 Android(安卓)本地数据存储 API
  7. Android(安卓)—— 注解(Annotation)也被称
  8. android 中的 Matrix,ColorMatrix 详解
  9. Android(安卓)基于坐标的图形开发
  10. Android研发安全2-Activity组件安全(下)