MainActivity
package com.buzz.beaconlib;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.ListView;import android.widget.TextView;import android.os.StrictMode;import android.os.Handler;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Message;import android.widget.Button;import android.view.View;//import android.util.Log;import android.widget.ArrayAdapter;import org.codehaus.jackson.map.ObjectMapper;import java.io.*;import java.net.*;import java.lang.*;import java.util.*;public class MainActivity extends ActionBarActivity {    private static String HOST = "192.168.0.106";    private static int PORT = 2397;    static String ActiveCMD = "";    Socket socket;    Thread socketMsgThread;    Handler inHandler;    Handler resultHandler;    InputStream in;    ObjectMapper objectMapper;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Bundle bundle = getIntent().getExtras();        HOST = bundle.getString("HOST");        PORT = Integer.parseInt(bundle.getString("PORT"));        StrictMode.setThreadPolicy(                new StrictMode                        .ThreadPolicy                        .Builder()                        .detectDiskReads()                        .detectDiskWrites()                        .detectNetwork()                        .penaltyLog()                        .build());        StrictMode.setVmPolicy(                new StrictMode                        .VmPolicy                        .Builder()                        .detectLeakedSqlLiteObjects()                        .detectLeakedClosableObjects()                        .penaltyLog()                        .penaltyDeath()                        .build());        final TextView tvHost = (TextView) findViewById(R.id.tvHost);        tvHost.setText(HOST);        final TextView tvPort = (TextView) findViewById(R.id.tvPort);        tvPort.setText(String.valueOf(PORT));        try {            socket = new Socket(HOST, PORT);        } catch (UnknownHostException e) {            e.printStackTrace();            ShowDialog(e.getMessage());        } catch (IOException e) {            e.printStackTrace();            ShowDialog(e.getMessage());        }        final Button btnGetBeaconInfo = (Button) findViewById(R.id.btnGetBeaconInfo);        final Button btnGetSysparams = (Button) findViewById(R.id.btnGetSysparams);        final Button btnGetUserInfo = (Button) findViewById(R.id.btnGetUserInfo);        final Button btnAddSyslog = (Button) findViewById(R.id.btnAddSyslog);        final Button btnAddKey = (Button) findViewById(R.id.btnAddKey);        final Button btnOpen = (Button) findViewById(R.id.btnOpen);        final Button btnClose = (Button) findViewById(R.id.btnClose);        btnOpen.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_OPEN);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "06";            }        });        btnClose.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_CLOSE);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "07";            }        });        btnGetBeaconInfo.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_GET_BEACON_INFO);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "01";            }        });        btnGetSysparams.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_GET_SYS_PARAMS);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "02";            }        });        btnGetUserInfo.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_GET_USER_INFO);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "03";            }        });        btnAddSyslog.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_ADD_SYS_LOG);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "04";            }        });        btnAddKey.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                try {                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));                    writer.write(GlobalConst.CMD_ADD_KEY);                    writer.flush();                } catch (UnknownHostException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                } catch (IOException e) {                    e.printStackTrace();                    ShowDialog(e.getMessage());                }                ActiveCMD = "05";            }        });        objectMapper = new ObjectMapper();        resultHandler = new Handler() {            public void handleMessage(Message msg) {                List<String> ds = new ArrayList<String>();                switch (msg.what) {                    case 1:                        BeaconInfo beaconInfo = (BeaconInfo) msg.obj;                        ds.add(beaconInfo.getBeacon().get(0).toString());                        for (triggers t : beaconInfo.getTriggers()) {                            ds.add(t.toString());                        }                        for (contents c : beaconInfo.getContents()) {                            ds.add(c.toString());                        }                        ShowResult(ds);                        break;                    case 2:                        Sysparams[] sysparamsList = (Sysparams[]) msg.obj;                        for (Sysparams sp : sysparamsList) {                            ds.add(sp.toString());                        }                        ShowResult(ds);                        break;                    case 3:                        UserInfo[] userInfoList = (UserInfo[]) msg.obj;                        ds.add(userInfoList[0].toString());                        ShowResult(ds);                        break;                    case 4:                        ShowResult(ds);                        break;                }            }        };        inHandler = new Handler() {            public void handleMessage(Message msg) {                switch (msg.what) {                    case 1:                        TextView tvJsonData = (TextView) findViewById(R.id.tvJsonData);                        tvJsonData.setText(msg.obj.toString());                        switch (ActiveCMD) {                            case "01":                                try {                                    BeaconInfo beaconInfo = objectMapper.readValue(msg.obj.toString(), BeaconInfo.class);                                    Message message = new Message();                                    message.what = 1;                                    message.obj = beaconInfo;                                    resultHandler.sendMessage(message);                                } catch (IOException ex) {                                    ShowDialog(ex.toString());                                    return;                                }                                break;                            case "02":                                try {                                    Sysparams[] SysparamsList = objectMapper.readValue(msg.obj.toString(), Sysparams[].class);                                    Message message = new Message();                                    message.what = 2;                                    message.obj = SysparamsList;                                    resultHandler.sendMessage(message);                                } catch (IOException ex) {                                    ShowDialog(ex.toString());                                    return;                                }                                break;                            case "03":                                try {                                    UserInfo[] userInfoList = objectMapper.readValue(msg.obj.toString(), UserInfo[].class);                                    Message message = new Message();                                    message.what = 3;                                    message.obj = userInfoList;                                    resultHandler.sendMessage(message);                                } catch (IOException ex) {                                    ShowDialog(ex.toString());                                    return;                                }                                break;                            default:                                Message message = new Message();                                message.what = 4;                                resultHandler.sendMessage(message);                                break;                        }                        break;                    default:                        break;                }            }        };        try {            in = socket.getInputStream();        } catch (Exception ex) {            return;        }        socketMsgThread = new Thread(runnable);        socketMsgThread.start();    }    Runnable runnable = new Runnable() {        @Override        public void run() {            String line = "";            while (true) {                try {                    byte[] temp = new byte[10240];// 默认最带为256                    int size = 0;                    while ((size = in.read(temp)) > 0) {                        // -1表示文件结尾                        byte[] res = new byte[size];// 默认最带为256                        System.arraycopy(temp, 0, res, 0, size);                        for (int i = 0; i < size; i++) {                            line += (char) res[i];                        }                        Message message = new Message();                        message.what = 1;                        message.obj = line;                        inHandler.sendMessage(message);                        line = "";                    }                } catch (Exception ex) {                    return;                }            }        }    };    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.menu_main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        //noinspection SimplifiableIfStatement        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }    private void ShowResult(List<String> ds){        ListView lvResult = (ListView) findViewById(R.id.lvResult);        lvResult.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,ds));    }    private void ShowDialog(String msg) {        new AlertDialog            .Builder(this)            .setTitle("notification")            .setMessage(msg)            .setPositiveButton("ok", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                }            }).show();    }}
core.js
var net=require('net');var mysql=require('./mysqlpool.js');var client=require('./doorclient.js');var fileserver=require('./fileserver.js');function execute_command(socket, command, args) {      switch(command){      case "90":        client.open();        break;      case "91":        client.close();        break;              case "01":        mysql.getBeaconInfo(socket,args);        break;      case "02":        mysql.getSysparams(socket);        break;      case "03":        mysql.getUserInfo(socket,args);        break;      case "04":        mysql.addSyslog(socket,args);        break;      case "05":        mysql.addKey(socket,args);    }};var s = net.createServer(function(socket) {    console.log('server connected');    socket.on('data', function(d) {       data = d.toString('utf8').trim();        var cmd_re = /^(\d{2})+[ ]*(.*)/g;      cmd_match = cmd_re.exec(data)        if (cmd_match) {          var command = cmd_match[1];          var args = cmd_match[2];          console.log(command+" "+args);        execute_command(socket, command, args);        }     });    socket.on('end', function() {      console.log('server disconnected');    });    socket.on('error', function (ex) {      console.log("ignoring exception: " + ex);    });});  s.listen(2397,'192.168.0.106');console.log('listen on server port:2397...');

更多相关文章

  1. Android 打开文件管理器 获取文件的真实路径
  2. Android 文件上传参考
  3. android SD卡文件变化监控
  4. Android学习笔记(11)————Android的私人文件夹的文件读写操作
  5. android一种较为复杂的布局参考(xml文件)
  6. android读取工程里文件并显示在界面
  7. Android读取SD卡下面所有的TXT文件名 listView显示出来
  8. Android 读取本地txt文件和写入txt文件到本地
  9. android > SDcard读写文件

随机推荐

  1. Android保持屏幕常亮的两种方法
  2. 逆向
  3. Google 终于要让 20 亿 Android(安卓)设
  4. Android开发-通过通俗易懂的Demo让你理解
  5. Android(安卓)版本更新下载自动安装APK,并
  6. Android(安卓)异步调用,AsyncTask的简单用
  7. 阿里云播放器调试心得,android的学习笔记
  8. Android反面自动静音
  9. 如何提交程序到Android(安卓)Market
  10. Android应用程序插件化研究之DexClassLoa